边学边体验django--HttpRequest 对象
每个view函数的第一个参数是一个HttpRequest对象。
HttpRequest对象包含当前请求URL的一些信息:
| 属性 | 描述 | ||||||||||||||||
| path | 请求页面的全路径,不包括域名'/hello/' | ||||||||||||||||
| method |
请求中使用的HTTP方法的字符串表示。全大写表示。例如: if request.method == 'GET': |
||||||||||||||||
| GET |
包含所有HTTP GET参数的类字典对象。
|
||||||||||||||||
| POST |
包含所有HTTP POST参数的类字典对象 服务器收到空的POST请求的情况也是有可能发生的。也就是说,表单form通过HTTP POST方法提交请求,但是表单中可以没有数据。因此,不能使用语句if request.POST来判断是否使用HTTP POST方法;应该使用if request.method == "POST" (参见本表的method属性)。 注意: POST不包括file-upload信息。参见FILES属性。 |
||||||||||||||||
| REQUEST | 该属性是POST和GET属性的集合体,但是有特殊性,先查找POST属性,然后再查找GET属性。 强烈建议使用GET and POST,因为这两个属性更加显式化,写出的代码也更易理解。 |
||||||||||||||||
| COOKIES | 包含所有cookies的标准Python字典对象。Keys和values都是字符串 | ||||||||||||||||
| FILES |
包含所有上传文件的类字典对象。FILES中的每个Key都是<input type="file" name="" />标签中name属性的值. FILES中的每个value 同时也是一个标准Python字典对象,包含下面三个Keys:
注意:只有在请求方法是POST,并且请求页面中<form>有enctype="multipart/form-data"属性时FILES才拥有数据。否则,FILES 是一个空字典 |
||||||||||||||||
| META | 包含所有可用HTTP头部信息的字典。
例如:
META中这些头加上前缀HTTP_为key: 例如:
|
||||||||||||||||
| user |
是一个django.contrib.auth.models.User 对象,代表当前登录的用户。 如果访问用户当前没有登录,user将被初始化为django.contrib.auth.models.AnonymousUser的实例。 你可以通过user的is_authenticated()方法来辨别用户是否登录: if request.user.is_authenticated(): 只有激活Django中的AuthenticationMiddleware时该属性才可用 |
||||||||||||||||
| session | 唯一可读写的属性,代表当前会话的字典对象。只有激活Django中的session支持时该属性才可用。 | ||||||||||||||||
| raw_post_data | 原始HTTP POST数据,未解析过。 高级处理时会有用处。 | ||||||||||||||||
| __getitem__(key) | 返回GET/POST的键值。特殊字典方法 | ||||||||||||||||
| has_key() | 检查request.GET or request.POST中是否包含参数key | ||||||||||||||||
| get_full_path() | 返回包含查询字符串的请求路径 | ||||||||||||||||
| is_secure() | 判断是否是HTTPS请求 | ||||||||||||||||
QueryDict对象 QueryDict类似字典的自定义类,用来处理单键对应多值的情况 |
|||||||||||||||||
| __getitem__ | 如果Key对应多个Value,__getitem__()返回最后一个value。 | ||||||||||||||||
| __setitem__ | 设置参数指定key的value列表(一个Python list)。注意:它只能在一个mutable QueryDict 对象上被调用(就是通过copy()产生的一个QueryDict对象的拷贝). | ||||||||||||||||
| get() | 如果key对应多个value,get()返回最后一个value | ||||||||||||||||
| update() | 参数可以是QueryDict,也可以是标准字典。和标准字典的update方法不同,该方法添加字典 items,而不是替换它们
>>> q = QueryDict('a=1')
>>> q = q.copy() # to make it mutable
>>> q.update({'a': '2'})
>>> q.getlist('a')
['1', '2']
>>> q['a'] # returns the last
['2']
|
||||||||||||||||
| items() | 和标准字典的items()方法有一点不同,该方法使用单值逻辑的__getitem__(): 获取最后一个值的列表.
>>> q = QueryDict('a=1&a=2&a=3')
>>> q.items()
[('a', '3')]
|
||||||||||||||||
| values() | 和标准字典的values()方法有一点不同,该方法使用单值逻辑的__getitem__(): | ||||||||||||||||
|
|||||||||||||||||
边学边体验django--HttpRequest 对象的更多相关文章
- django HttpRequest对象
概述: 服务器接收http请求后,会根据报文创建HttpRequest对象 视图的第一个参数就是HttpRequest对象 django创建的,之后调用视图时传递给视图 属性 path:请求的完整路径 ...
- 边学边体验django
django菜鸟入门连接:http://www.runoob.com/django/django-template.html 安装以及Demo里面都有. 我边学边在电脑上演示,然后发现一些和实际不一样 ...
- Django HttpRequest对象详解
WSGIRequest对象 Django在接收到http请求之后,会根据http请求携带的参数以及报文信息创建一个WSGIRequest对象,并且作为视图函数第一个参数传给视图函数.也就是我们经常看到 ...
- [R]django的HTTPREQUEST对象
django的HTTPREQUEST对象 via Django使用request和response对象 当请求一张页面时,Django把请求的metadata数据包装成一个HttpRequest对象, ...
- django的HTTPREQUEST对象
Django使用request和response对象 当请求一张页面时,Django把请求的metadata数据包装成一个HttpRequest对象,然后Django加载合适的view方法,把这个Ht ...
- $Django 虚拟环境,2.0、1.0路由层区别,Httprequest对象,视图层(fbv,cbv),文件上传
1 虚拟环境:解决问题同一台机器上可以运行不同版本的django, 1 用pychanrm创建--->files-->newproject--->选择虚拟环境 2 setting ...
- Django的httprequest对象和httpresponse对象
请求一张页面时,Django把请求的metadata数据包装成一个HttpRequest对象,然后Django加载合适的view方法,把这个HttpRequest 对象作为第一个参数传给view方法. ...
- Django 10 GET和POST(HttpRequest对象,GET和POST请求,文件上传,HttpResponse对象的cookie)
Django 10 GET和POST(HttpRequest对象,GET和POST请求,文件上传,HttpResponse对象的cookie) 一.HttpRequest对象 #HttpRequest ...
- Django框架之第四篇(视图层)--HttpRequest对象、HttpResponse对象、JsonResponse、CBV和FBV、文件上传
视图层 一.视图函数 一个视图函数,简称视图,是一个简单的python函数,它接收web请求并且会返回web响应.响应可以是一张网页的html,一个重定向,或者是一张图片...任何东西都可以.无论是什 ...
- django.http.request中HttpRequest对象的一些属性与方法
HttpRequest对象的属性 属性 描述 path 表示提交请求页面完整地址的字符串,不包括域名,如 "/music/bands/the_beatles/". method 表 ...
随机推荐
- Postman和jmeter的区别
1.创建接口用例集(没区别) Postman是Collections,Jmeter是线程组,没什么区别. 2.步骤的实现(有区别) Postman和jmeter都是创建http请求 区别1:postm ...
- re 模块与正则表达式
目录 re 模块 re 模块的基本使用 re 模块 正则表达式与re模块的关系 1:正则表达式是一门独立的技术. 2:正则在任何语言中均可以使用. 3:python中要想使用正则表达式需要通过re模块 ...
- Python——类和对象(一)
一.定义类 在面向对象的程序设计中有两种重要概念: 类:可以理解为一个种类,一个模型,是一种抽象的东西. 实例.对象:可以理解为一种具体制作或者存在的东西. 定义类的语法格式如下: class 类名: ...
- CMake入门-01-从HelloWorld开始
工作环境 系统:macOS Mojave 10.14.6 CMake: Version 3.15.0-rc4 从 Hello,World! 开始 (1) 新建 hello 目录,创建文件 CMakeL ...
- [JZOJ5897]密匙--哈希骚操作
[JZOJ5897]密匙--哈希骚操作 题目链接 太懒了自行Google 前置技能 二分/倍增求LCP e.g TJOI2017DNA 分析 这题看了样例解释才知道什么意思 本以为自己身为mo法师蛤希 ...
- Jmeter测试出现端口占用情况
Jmeter测试会出现端口占用情况 这边在这里做个记录,每次都要百度查询,刚好需要整理下,我就也记录一份到这里吧.感谢大佬的文章. 参考文章:windows下Jmeter压测端口占用问题 因Windo ...
- 【多进程】php实现 master-worker 守护多进程模式
<?php class Worker{ public static $count = 2; public static function runAll(){ static::runMaster( ...
- JS实现当前选择日期是星期几
使用到的日期插件是My97 Datepicker,这里通过onpicked方法触发getDay()方法,在getDay()方法中获取已选择的日期来判断是星期几. 插件下载地址:http://www.m ...
- js入门之函数
一. 函数 函数可以封装一段特定功能的代码,然后通过函数名可以重复调用 1 .函数的定义 funcation 函数名 (){ 函数体 } 函数名() 调用函数 2. 函数的参数 funcation f ...
- SVN配置使用及移植
使用svn作为配置管理工具及其普遍的用于项目开发中,网上有很多关于svn的原理介绍及命令行管理教程.这里仅仅分享下个人配置及使用的过程,不通过命令行,可简单的上手操作.如有遗漏欢迎留言交流. 配置及使 ...
