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
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的字典的表现形式
django中的request对象详解的更多相关文章
- Django_视图中的request对象详解(八)
本文参考:http://www.cnblogs.com/MnCu8261/p/5871085.html Request 我们知道当URLconf文件匹配到用户输入的路径后,会调用对应的view函数,并 ...
- django中request对象详解(转载)
django中的request对象详解 Request 我们知道当URLconf文件匹配到用户输入的路径后,会调用对应的view函数,并将 HttpRequest对象 作为第一个参数传入该函数. ...
- JS中的event 对象详解
JS中的event 对象详解 JS的event对象 Event属性和方法:1. type:事件的类型,如onlick中的click:2. srcElement/target:事件源,就是发生事件的 ...
- django的views里面的request对象详解大全
简介 HTTP 应用的信息是通过 请求报文 和 响应报文 传递的,关于更多的相关知识,可以阅读<HTTP权威指南>获得. 其中 请求报文 由客户端发送,其中包含和许多的信息,而 djang ...
- JSP中Out和Request对象详解
内置表示不需要new便可直接使用. 一.基础知识 1.缓冲区:IO最原始是一个一个字节的读取,这就像吃米饭的时候一粒一粒的吃,很没有效率,这时候就有了碗,一碗一碗的吃,岂不痛快. 2.Get提交不能超 ...
- django中的路由控制详解
一 Django中路由的作用 二 简单的路由配置 三 有名分组 四 路由分发 五 反向解析 六 名称空间 七 django2.0版的path 一 Django中路由的作用 URL配置(URLconf) ...
- Django中的request对象组成
if request.REQUEST.has_key('键值'): HttpRequest对象的属性 参考: 表 H-1. HttpRequest对象的属性 属 性 描述 path 表示提 ...
- request对象详解
先来了解一下Request的主要方法: setAttribute(String name,Object):设置名字为name的request的参数值getAttribute(String name): ...
- jsp request 对象详解
转自:http://www.cnblogs.com/qqnnhhbb/archive/2007/10/16/926234.html 1.request对象 客户端的请求信息被封装在request对象中 ...
随机推荐
- 函数式编程与React高阶组件
相信不少看过一些框架或者是类库的人都有印象,一个函数叫什么creator或者是什么什么createToFuntion,总是接收一个函数,来返回另一个函数.这是一个高阶函数,它可以接收函数可以当参数,也 ...
- 第10讲:利用SQL语言实现关系代数操作
一.实现并.交.差运算 1. 基本语法形式:子查询 [union [all] | intersect [all] | except [all] 子查询] ①意义:将关系代数中的∪.∩.- 分别用uni ...
- Scrum Meeting 3 -2014.11.5
这几天小伙伴们都在努力,研究出不少改进方案并加以设计和实施了,分词算法的优化进度可观,而其他的任务在改进的过程中产生了些问题,对于之前代码的设计感到疑惑,我们找到了上届的学长们咨询,他们也给出了不少建 ...
- Week-2-作业1
第一章 概论 1.什么是程序? 答:在学习软件工程导论前,我们已经学习了一些计算机语言和数据结构这样的课程,并深刻的知道“程序=数据结构+算法”,但在学习中还是会产生如书中1.1讲所提到的那些疑问,二 ...
- 对于Redis的了解
Redis :高性能的key-value数据库,支持存储的value类型包括字符串.链表.集合.有序集合.哈希类型. redis使用两种文件格式:全量数据和增量请求. 全量数据格式是将内存中的数据写入 ...
- UDP与TCP笔记
1.UDP UDP协议在工作时是建立在IP协议之上的,UDP从进程的缓冲区接收进程每一次产生的输出,对每次输出都生成一个UDP数据报,然后把生成的UDP数据报直接封装在IP数据报中进行传输,因此在传输 ...
- angularJS1笔记-(18)-$http及用angular实现JSONP跨域访问过程
官网上的解释为: The $http service is a core AngularJS service that facilitates communication with the remot ...
- 项目总结之关于JQuery一些常用的函数
最近做一个小的项目,用到了很多关于jquery函数,下面简单总结下自我感觉比较常用的一些函数. jquery函数--Hide函数用法 jquery中,hide函数用于实现层的消失,相反,show函数用 ...
- excel表格如何限制单元格输入内容
一天一天实在太快,周六了~~~ 测试任务不太紧的时候就可以着手开始整理本月的测试项目,选择的是excel,清晰明了. 原来excel的功能远比我们想象的强大与好用,今天先介绍如何限制单元格内容: 如下 ...
- psp本周
四人项目: 日期 类别 内容 开始时间 结束时间 中断时间 净时间 10.4 站立会议 站立会议报告 21:12 21:37 0 25 结对项目: 日期 类别 内容 开始时间 结束时间 中断时间 净时 ...