• 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>
  • 相关阅读:
    MyBatis的#{}和${}区别
    java集合
    AcWing第2周周赛题解
    AcWing第1场周赛题解
    AcWing第2场热身赛题解
    AcWing第1场热身赛题解
    AcWing第3场周赛题解
    湖仓一体天花板,大数据一站式交互式SQL分析技术
    从1天→10分钟,华为云DRS在背后做了这些
    [导入]童趣
  • 原文地址:https://www.cnblogs.com/JcHome/p/16125494.html
Copyright © 2020-2023  润新知