django 获取用户的请求信息

常见的Http的请求方法:

  • GET 向特定资源发出请求(访问网页)
  • POST 向指定资源提交数据处理请求(提交表单,上传文件)
  • OPTION 返回服务器针对特定资源所支持的请求方法
  • PUT 向指定资源位置上传数据内容
  • DELETE 请求服务器删除request-URL所标示的资源
  • HEAD 与GET请求类似,返回的响应中没有具体内容,用于获取报头
  • TRACE 回复和显示服务器收到的请求,用于测试和诊断
  • CONNECT HTTP/1.1 协议中能够将连接改为管道方式的代理服务器。

 下面是一些 常用的属性进行说明:

  • COOKIE 获取客户端(浏览器)的Cookie信息,以字典形式表示,并且键值对都是字符串类型。
  • FILES django.http.request.QueryDict 对象,包含所有的文件上传信息。
  • GET 获取GET请求的请求参数,它是django.http.request.QueryDict对象,操作起来类似于字典。
  • POST 获取POST请求的请求参数,它是django.http.QueryDict 对象,操作起来类似于字段。
  • META 获取客户端(浏览器)的请求信息,以字典形式存储。
  • method 获取当前请求的请求方式(GET 请求或POST 请求)。
  • path 获取当前请求的路由地址。
  • session 一个类似字段的对象,用来操作服务器的会话信息,可临时存放用户信息。
  • user 当django启用AuthenticationMiddleware 中间件时才可用。它的值是内置数据模型User 的对象,表示当前登录的用户。如果用户当前没有登录,那么user将设为django.contrib.auth.models.AnonymousUser 的一个实例。

HttpRequest 类常用的方法:

  • is_secure() 是否是采用HTTPS协议。
  • is_ajax() 是否采用AJAX 发送HTTP 请求。判断原理是请求头中是否存在X-Requested-With:XMLHttpRequest。
  • get_host() 获取服务器的域名。如果在访问的时候设有端口,就会加上端口号,如127.0.0.1:8000.
  • get_full_path() 返回路由地址。如果该请求为GET请求并且设有请求参数,返回路由地址就会将请求参数返回,如/?user=jc&pw=123456。
  • get_raw_uri() 获取完整的网址信息,将服务器的域名、端口和路由地址一并返回,如http://127.0.0.1:8000/?user=jc&pw=123456。
from django.shortcuts import render
from django.http import HttpResponse


# Create your views here.

def index(request):
    if request.method == "GET":
        #类方法的使用
        print(request.is_secure())
        print(request.is_ajax())
        print(request.get_host())
        print(request.get_full_path())
        print(request.get_raw_uri())
        #属性的使用
        print(request.COOKIES)
        print(request.content_type)
        print(request.content_params)
        print(request.scheme)
        #获取GET请求的请求参数
        print(request.GET.get("user",""))
        return render(request,"index.html")
    elif request.method == "POST":
        #获取POST 请求的请求参数
        print(request.POST.get("user",""))
        return render(request,"index.html")

templates的 index.html

<html>
    <header>
        <title>hello world</title>
    </header>

<body>
        <a href="{%url 'myApp:download1' %}">下载1</a>
        <a href="{%url 'myApp:download2' %}">下载2</a>
        <a href="{%url 'myApp:download3' %}">下载3</a> 

        <form action="" method="POST" >
            {% csrf_token %}
            <input type="text" name="user" >
            <input type="submit" value="提交">
        </form>
</body>
</html>

 

posted @ 2022-04-10 17:05  西夏一品唐  阅读(831)  评论(0编辑  收藏  举报