Django中的request到底有啥属性呢

Request

  我们知道当URLconf文件匹配到用户输入的路径后,会调用对应的view函数,并将  HttpRequest对象  作为第一个参数传入该函数。

  我们来看一看这个HttpRequest对象有哪些属性或者方法:

属性:

1  HttpRequest.scheme       请求的协议,一般为http或者https,字符串格式(以下属性中若无特殊指明,均为字符串格式)

2  HttpRequest.body        http请求的主体,二进制格式。

3  HttpRequest.path             所请求页面的完整路径(但不包括协议以及域名),也就是相对于网站根目录的路径。

4  HttpRequest.path_info     获取具有 URL 扩展名的资源的附加路径信息。相对于HttpRequest.path,使用该方法便于移植。

if the WSGIScriptAlias for your application is set to "/minfo", then path might be "/minfo/music/bands/the_beatles/" and path_info would be "/music/bands/the_beatles/".

5  HttpRequest.method               获取该请求的方法,比如: GET   POST .........

6  HttpRequest.encoding             获取请求中表单提交数据的编码。

7  HttpRequest.content_type      获取请求的MIME类型(从CONTENT_TYPE头部中获取),django1.10的新特性。

8  HttpRequest.content_params  获取CONTENT_TYPE中的键值对参数,并以字典的方式表示,django1.10的新特性。

9  HttpRequest.GET                    返回一个 **querydict **对象(类似于字典,本文最后有querydict的介绍),该对象包含了所有的HTTP GET参数

10  HttpRequest.POST                返回一个 **querydict **,该对象包含了所有的HTTP POST参数,通过表单上传的所有  字符  都会保存在该属性中。

11  HttpRequest.COOKIES        返回一个包含了所有cookies的字典

12  HttpRequest.FILES           返回一个包含了所有的上传文件的  querydict  对象。通过表单所上传的所有  文件  都会保存在该属性中。

                                               key的值是input标签中name属性的值,value的值是一个UploadedFile对象

13  HttpRequest.META                返回一个包含了所有http头部信息的字典

CONTENT_LENGTH – The length of the request body (as a string).

    CONTENT_TYPE – The MIME type of the request body.

    HTTP_ACCEPT – Acceptable content types for the response.

    HTTP_ACCEPT_ENCODING – Acceptable encodings for the response.

    HTTP_ACCEPT_LANGUAGE – Acceptable languages for the response.

    HTTP_HOST – The HTTP Host header sent by the client.

    HTTP_REFERER – The referring page, if any.

    HTTP_USER_AGENT – The client’s user-agent string.

    QUERY_STRING – The query string, as a single (unparsed) string.

    REMOTE_ADDR – The IP address of the client.

    REMOTE_HOST – The hostname of the client.

    REMOTE_USER – The user authenticated by the Web server, if any.

    REQUEST_METHOD – A string such as "GET" or "POST".

    SERVER_NAME – The hostname of the server.

    SERVER_PORT – The port of the server (as a string).

14  HttpRequest.session       中间件属性

15  HttpRequest.site        中间件属性

16  HttpRequest.user       中间件属性,表示当前登录的用户。

   HttpRequest.user实际上是由一个定义在django.contrib.auth.models 中的  user model  类  所创建的对象。

   该类有许多字段,属性和方法。列举几个常用的:        获取更详细信息-->官方文档

    1  字段:

      username    用户名

      first_name

      last_name

      email

      password

      groups

      user_permissions,

      is_staff     布尔值,标明用户是否可以访问admin页面

      is_superuser 

      last_login  上一次登陆时间

      date_joined     用户创建时间

    2  属性

      is_authenticated   布尔值,标志着用户是否已认证。在django1.10之前,没有该属性,但有与该属性同名的方法。

    3  方法

      1  HttpRequest.user.get_username()  注意:方法的圆括号在templates标签中必需省略!!

         获取username。尽量使用该方法来代替使用username字段

      2  HttpRequest.user.get_full_name()  注意:方法的圆括号在templates标签中必需省略!!

         获取first_name和last_name

      3  HttpRequest.user.short_name()  注意:方法的圆括号在templates标签中必需省略!!

         获取first_name

      4  HttpRequest.user.set_password(raw_password)  注意:该方法无法在template标签中使用!!

         设置密码

      5  HttpRequest.user.check_password(raw_password)  注意:该方法无法在template标签中使用!!

         如果raw_password与用户密码相等,则返回True````

方法:

1  HttpRequest.get_host()            返回请求的源主机。example:  127.0.0.1:8000

2  HttpRequest.get_port()            django1.9的新特性。

3  HttpRequest.get_full_path()     返回完整路径,并包括附加的查询信息。example:  "/music/bands/the_beatles/?print=true"

4  HttpRequest.bulid_absolute_uri(location)      返回location的绝对uri,location默认为request.get_full_path()。``

    Example: "https://example.com/music/bands/the_beatles/?print=true"


QueryDict

  是一个类似于Python中字典的一种对象,他是Python中字典的子类,所以继承了字典的所有方法,

  当然QueryDict对字典的某些方法进行了加工,并补充了一些独特的方法。这里列出部分方法。详情请看: 官方文档

1  QueryDict.get(key,default=None)   返回key所对应的value,若key不存在,则返回default的值

2  QueryDict.update(other_dict)   更新

3  QueryDict.values()   列出所有的值

4  QueryDict.items()   列出所有的键值对,若一个key有多个值,只显示最后一个值。

5  QueryDict.pop(key)   删除某个键值对

6  QueryDict.getlist(key)   根据输入的key返回一个Python中的list

7  QueryDict.dict()   返回QueryDict的字典的表现形式


DRF 中的request

常用属性:

request.data post请求过来时获取数据,类似于标准request.POSTrequest.FILES属性,除了:

  • 它包括所有已解析的内容,包括文件和非文件输入。
  • 它支持解析除以外的HTTP方法的内容POST,这意味着您可以访问PUTPATCH请求的内容。
  • 它支持REST框架的灵活请求解析,而不仅仅是支持表单数据。例如,您可以以处理传入表单数据的相同方式处理传入JSON数据。

request.query_params get请求过来时获取拼接数据

request.auth 用于验证身份,主要取决于所使用的身份验证方式

request.method 返回请求的HTTP方法的大写字符串表示形式

request.content_type 返回代表HTTP请求主体的媒体类型的字符串对象,如果未提供媒体类型,则返回空字符串

Django中的request到底有啥属性的更多相关文章

  1. Django中的Request和Response

    接触Django这么久了,从来没有好好学习关于Django中的Request和Response对象.借着文件上传下载的相关工作,现在总结一下也不错. 当一个页面请求过来,Django会自动创建一个Re ...

  2. 【转】Django中的request与response对象

    关于request与response 前面几个 Sections 介绍了关于 Django 请求(Request)处理的流程分析,我们也了解到,Django 是围绕着 Request 与 Respon ...

  3. django中的request对象详解

    Request 我们知道当URLconf文件匹配到用户输入的路径后,会调用对应的view函数,并将  HttpRequest对象  作为第一个参数传入该函数. 我们来看一看这个HttpRequest对 ...

  4. Django中的request对象组成

    if  request.REQUEST.has_key('键值'): HttpRequest对象的属性 参考: 表 H-1. HttpRequest对象的属性 属      性 描述 path 表示提 ...

  5. django中的request对象

    Request 我们知道当URLconf文件匹配到用户输入的路径后,会调用对应的view函数,并将  HttpRequest对象  作为第一个参数传入该函数. 我们来看一看这个HttpRequest对 ...

  6. django中request对象详解(转载)

    django中的request对象详解 Request 我们知道当URLconf文件匹配到用户输入的路径后,会调用对应的view函数,并将  HttpRequest对象  作为第一个参数传入该函数. ...

  7. django中HttpRequest请求

    视图的第一个参数必须是HttpRequest对象 在视图函数中,接收的request有如下属性: path:一个字符串,表示请求的页面的完整路径,不包含域名. method:一个字符串,表示请求使用的 ...

  8. django 中的视图(Views)

    Views Django中views里面的代码就是一个一个函数逻辑, 处理客户端(浏览器)发送的HTTPRequest, 然后返回HTTPResponse, http请求中产生两个核心对象: http ...

  9. Restframework中的Request

    1.介绍 该篇博客主要介绍restframework内置的Request类,它扩展了Django中的Request类,实现了很多方便的功能--如请求数据解析和认证等. 如: 在APIView中封装的r ...

随机推荐

  1. 做一个有价值的seoer

    什么是SEO就不用在解释了吧,一般来看这篇文章的都是老鸟了,基础的术语解释也啥意义. 从早期的cms建站,到现在的批量镜像站群等操作,似乎搜索引擎现在都下了重手,前几年还好用的方式现在已经不再是那么理 ...

  2. 如何一步步使用国内yum源一键安装openstack-ocata版本基于centos7

    写在前面的话,在网上看了一个国外的一键安装视频,我也照着做,结果出现很多错误,现在把坑解决了,照着做肯定能安装成功的 环境 virtualhost 下的centos7 配置 双网卡 一个10网段,na ...

  3. Flask 蓝图(Blueprint)使用方式解析

    Flask蓝图提供了模块化管理程序路由的功能,使程序结构清晰.简单易懂.下面分析蓝图的使用方法 假如说我们要为某所学校的每个人建立一份档案,一个很自然的优化方式就是这些档案如果能分类管理,就是说假如分 ...

  4. Java8新特性之方法引用

    <Java 8 实战>学习笔记系列 定义 方法引用让你可以重复使用现有的方法定义,并像Lambda一样传递它,可以把方法引用看作针对仅仅涉及单一方法的Lambda的语法糖,使用它将减少自己 ...

  5. NAT网络地址转化和DHCP

    DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)通常被应用在大型的局域网络环境中,主要作用是集中的管理.分配IP地址,使网络环境中的主机动态的获得I ...

  6. PIP设置镜像源

    PIP设置镜像源 pip安装Python包时候,默认是国外的下载源,速度太慢,本文介绍几种设置pip国内镜像源的方法 镜像源 阿里云 http://mirrors.aliyun.com/pypi/si ...

  7. Beta冲刺<6/10>

    这个作业属于哪个课程 软件工程 (福州大学至诚学院 - 计算机工程系) 这个作业要求在哪里 Beta冲刺 这个作业的目标 Beta冲刺--第六天(05.24) 作业正文 如下 其他参考文献 ... B ...

  8. IDEA SonarLint安装及使用

    SonarLint插件安装IDEA菜单栏选择File->Settings,左边栏选择Plugins 在线安装选择Browse repositories,搜索Sonar,选择SonarLint进行 ...

  9. 2、尚硅谷_SSM高级整合_使用ajax操作实现页面的查询功能

    16.尚硅谷_SSM高级整合_查询_返回分页的json数据.avi 在上一章节的操作中我们是将PageInfo对象存储在request域中,然后list页面解析request域中的对象实现信息的显示. ...

  10. Nginx详细介绍

    1.Nginx是什么? Nginx就是反向代理服务器. 首先我们先来看看什么是代理服务器,代理服务器一般是指局域网内部的机器通过代理服务发送请求到互联网上的服务器,代理服务器一般作用于客户端.比如Go ...