zoukankan      html  css  js  c++  java
  • Django之request对象

    在view.py的函数中。我们的函数中第一个参数都是request。在request中有一些信息,比如正在加载这个页面的用户是谁,或者是用什么浏览器之类的。这对于我们网站的管理是很有用处的。

    request对象中包含当前请求URL的一些信息:

    request.path: 除域名以外的请求路径,以正斜杠开头

    request.get_host():主机名(比如,通常所说的域名)

    request.get_full_path():请求路径,可能包含查询字符串

    request.is_secure():如果通过HTTPS访问,则此方法返回True, 否则返回False

    我们来实际验证一下:定义一个测试函数,在test.html中显示信息

    def function_test(request):
        path=request.path
        host=request.get_host()
        full_path=request.get_full_path()
        whether_secure=request.is_secure()
        return render(request,'test.html',{'path':path,'host':host,'full_path':full_path,'is_secure':whether_secure})
    输出结果如下:

    那么在request对象中是否包含更多的信息呢,比如用户的浏览器,以及用户的IP地址。这些也是有的,都包含在request.META中,request.META是 一个字典。包含了所有本次HTTP请求的Header信息,比如用户IP地址和用户Agent(通常是浏览器的名称和版本号)。主要有以下的信息:

    PYTHONIOENCODING:编码方式

    COMPUTERNAME:用户的主机名

    HTTP_COOKIE:cookie值

    'USERDOMAIN':用户的域

    SERVER_PROTOCOL:服务器协议版本

    SERVER_SOFTWARE:服务器版本

    REQUEST_METHOD:请求方式

    HTTP_CONNECTION:HTTP连接方式

    REMOTE_ADDR:远程访问的地址

    HTTP_USER_AGENT:用户浏览器的user-agent字符串

    由于这些信息有些是取决于用户所发送的header信息和服务器端设置的header配置,因此在取这些数据的时候应该加下保护防止获取不到对应的键值而报错:

    def function_test(request):
        try:
            user_agent=request.META['HTTP_USER_AGENT']
            remote_addr=request.META['REMOTE_ADDR']
            cookie=request.META['HTTP_COOKIE']
        except KeyError:
            error="key value not found"
        return
    render(request,'test.html',{'user_agent':user_agent,'remote_addr':remote_addr,'cookie':cookie})
    结果如下:

    
    
    
    
    
  • 相关阅读:
    NLPIR大数据语义系统文本数据分析挖掘平台
    NLPIR:中文语义挖掘是自然语言处理的关键
    NLPIR-JZSearch智能搜索深层挖掘大数据资源
    NLPIR智能Protege知识图谱实现多场景应用
    DotNet加密方式解析--散列加密
    SSO单点登录PHP简单版
    xss框架基础框架实现
    Kafka Offset Storage
    C#如何使用ES
    模拟Vue之数据驱动
  • 原文地址:https://www.cnblogs.com/zhanghongfeng/p/8227997.html
Copyright © 2011-2022 走看看