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头部信息的字典

 

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的字典的表现形式


本文作者 “MnCu”,请务必保留此出处http://www.cnblogs.com/MnCu8261/

django中request对象详解(转载)的更多相关文章

  1. jQuery的deferred对象详解(转载)

    本文转载自: jQuery的deferred对象详解(转载)

  2. (转)javascript中event对象详解

    原文:http://jiajiale.iteye.com/blog/195906 javascript中event对象详解          博客分类: javaScript JavaScriptCS ...

  3. 详解Django中Request对象的相关用法

    原文链接:http://www.jb51.net/article/69624.htm 1.从Request对象中获取数据 我们在第三章讲述View的函数时已经介绍过HttpRequest对象了,但当时 ...

  4. Django_视图中的request对象详解(八)

    本文参考:http://www.cnblogs.com/MnCu8261/p/5871085.html Request 我们知道当URLconf文件匹配到用户输入的路径后,会调用对应的view函数,并 ...

  5. JSP中Out和Request对象详解

    内置表示不需要new便可直接使用. 一.基础知识 1.缓冲区:IO最原始是一个一个字节的读取,这就像吃米饭的时候一粒一粒的吃,很没有效率,这时候就有了碗,一碗一碗的吃,岂不痛快. 2.Get提交不能超 ...

  6. C#中的 特性 详解(转载)

    本篇幅转载于:http://www.cnblogs.com/rohelm/archive/2012/04/19/2456088.html C#中特性详解 特性提供了功能强大的方法,用于将元数据或声明信 ...

  7. django中models field详解

    本文参考自:django官方文档models/field 在model中添加字段的格式一般为:  field_name = field_type(**field_options) 一  field o ...

  8. 转:AJAX中xhr对象详解

    XJAX ,并不是一种新技术的诞生.它实际上代表的是几项技术按一定的方式组合在一在同共的协作中发挥各自的作用. 它包括: 使用XHTML和CSS标准化呈现: 使用DOM实现动态显示和交互: 使用XML ...

  9. django中的模型详解-1

    在说明django模型之前,首先来说明一下django的生命周期,也就是一个请求到达django是如何处理的.[暂时不包含中间件] 浏览器的请求---->到达django中的urls中找到对应的 ...

随机推荐

  1. MFC的简单加法器(二)

    创建对话框主要分两大步,第一,创建对话框资源,主要包括创建新的对话框模板.设置对话框属性和为对话框添加各种控件:第二,生成对话框类,主要包括新建对话框类.添加控件变量和控件的消息处理函数等.鸡啄米在本 ...

  2. std::map的clear()没有用?

    昨天晚上,我徒弟跑过来讲,他的程序的内存占用居高不下,愿意是std::map的clear()没有效果.于是我让他用erase(begin,end); 试试也不行. 代码如下: void release ...

  3. synchronized原理

    http://www.cnblogs.com/YDDMAX/p/5658607.html http://www.cnblogs.com/YDDMAX/p/5658668.html synzhroniz ...

  4. ASP.NET中application对象的用法

    一.Application对象的理解 Application对象在实际网络开发中的用途就是记录整个网络的信息,如上线人数.在线名单.意见调查和网上选举等.在给定的应用程序的多有用户之间共享信息,并在服 ...

  5. winston 日志管理4

    配置File Transport winston.add(winston.transports.File, options) The File transport should really be t ...

  6. [BS-19]更改UITextField的placeholder文字颜色的5种方法

    更改UITextField的placeholder文字颜色的5种方法 想要达到的目标是:一个页面上有多个UITextField,当用户聚焦某textField时,该文本框的placeholder的文字 ...

  7. WPF 蒙层罩,正在加载

    参考园子里的一篇文章,比较好用.可以直接用,可以自己改. 动画效果: 容器的触发器,旋转容器: 属性配置:使用依赖属性,并且在xaml中写绑定.

  8. pymongo使用总结

    0. 何为pymongo pymongo是操作MongoDB的python模块 1.安装pymongo # easy_install pymongo 2.连接mongodb >>> ...

  9. chart crash

    * thread #155: tid = 0x1fcc10, 0x0000000107626745 gpxj`static gpxj.ChartUtils.decimals (gpxj.ChartUt ...

  10. Function.prototype.bind接口浅析

    本文大部分内容翻译自 MDN内容, 翻译内容经过自己的理解. https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Glo ...