django QueryDict对象
类的原型:class QueryDict[source]
在HttpRequest对象中,GET和POST属性都是一个django.http.QueryDict
的实例。也就是说你可以按本文下面提供的方法操作request.POST和request.GET。
request.POST或request.GET的QueryDict都是不可变,只读的。如果要修改它,需要使用QueryDict.copy()方法,获取它的一个拷贝,然后在这个拷贝上进行修改操作。
一、方法
QueryDict 实现了Python字典数据类型的所有标准方法,因为它是字典的子类。
不同之处在于下面:
1. QueryDict.init(query_string=None, mutable=False, encoding=None)[source]
QueryDict实例化方法。注意:QueryDict的键值是可以重复的!
>>> QueryDict('a=1&a=2&c=3')
<QueryDict: {'a': ['1', '2'], 'c': ['3']}>
如果需要实例化可以修改的对象,添加参数mutable=True。
2. classmethod QueryDict.fromkeys(iterable, value='', mutable=False, encoding=None)[source]
Django1.11中的新功能。
循环可迭代对象中的每个元素作为键值,并赋予同样的值(来至value参数)。
>>> QueryDict.fromkeys(['a', 'a', 'b'], value='val')
<QueryDict: {'a': ['val', 'val'], 'b': ['val']}>
3. QueryDict.update(other_dict)
用新的QueryDict或字典更新当前QueryDict。类似dict.update()
,但是追加内容,而不是更新并替换它们。 像这样:
>>> q = QueryDict('a=1', mutable=True)
>>> q.update({'a': '2'})
>>> q.getlist('a')
['1', '2']
>>> q['a'] # returns the last
'2'
4. QueryDict.items()
类似dict.items()
,如果有重复项目,返回最近的一个,而不是都返回:
>>> q = QueryDict('a=1&a=2&a=3')
>>> q.items()
[('a', '3')]
5. QueryDict.values()
类似dict.values()
,但是只返回最近的值。 像这样:
>>> q = QueryDict('a=1&a=2&a=3')
>>> q.values()
['3']
6. QueryDict.copy()[source]
使用copy.deepcopy()返回QueryDict对象的副本。 此副本是可变的!
7. QueryDict.getlist(key, default=None)
返回键对应的值列表。 如果该键不存在并且未提供默认值,则返回一个空列表。
8. QueryDict.setlist(key, list_)[source]
为list_
设置给定的键。
9. QueryDict.appendlist(key, item)[source]
将键追加到内部与键相关联的列表中。
10. QueryDict.setdefault(key, default=None)[source]
类似dict.setdefault(),为某个键设置默认值。
11. QueryDict.setlistdefault(key, default_list=None)[source]
类似setdefault(),除了它需要的是一个值的列表而不是单个值。
12. QueryDict.lists()
类似items(),只是它将其中的每个键的值作为列表放在一起。 像这样:
>>> q = QueryDict('a=1&a=2&a=3')
>>> q.lists()
[('a', ['1', '2', '3'])]
13. QueryDict.pop(key)[source]
返回给定键的值的列表,并从QueryDict中移除该键。 如果键不存在,将引发KeyError。 像这样:
>>> q = QueryDict('a=1&a=2&a=3', mutable=True)
>>> q.pop('a')
['1', '2', '3']
14. QueryDict.popitem()[source]
删除QueryDict任意一个键,并返回二值元组,包含键和键的所有值的列表。在一个空的字典上调用时将引发KeyError。 像这样:
>>> q = QueryDict('a=1&a=2&a=3', mutable=True)
>>> q.popitem()
('a', ['1', '2', '3'])
15. QueryDict.dict()
将QueryDict转换为Python的字典数据类型,并返回该字典。
如果出现重复的键,则将所有的值打包成一个列表,最为新字典中键的值。
>>> q = QueryDict('a=1&a=3&a=5')
>>> q.dict()
{'a': '5'}
16. QueryDict.urlencode(safe=None)[source]
已url的编码格式返回数据字符串。 像这样:
>>> q = QueryDict('a=2&b=3&b=5')
>>> q.urlencode()
'a=2&b=3&b=5'
使用safe参数传递不需要编码的字符。 像这样:
>>> q = QueryDict(mutable=True)
>>> q['next'] = '/a&b/'
>>> q.urlencode(safe='/')
'next=/a%26b/'
django QueryDict对象的更多相关文章
- Request对象和Response对象 JsonResponse对象 和 Django shortcut functions 和QueryDict对象
request request属性 属性: django将请求报文中的请求行.头部信息.内容主体封装成 HttpRequest 类中的属性. 除了特殊说明的之外,其他均为只读的. ''' 0.Http ...
- django基础知识之QueryDict对象:
QueryDict对象 定义在django.http.QueryDict request对象的属性GET.POST都是QueryDict类型的对象 与python字典不同,QueryDict类型的对象 ...
- django HttpRequest对象
概述: 服务器接收http请求后,会根据报文创建HttpRequest对象 视图的第一个参数就是HttpRequest对象 django创建的,之后调用视图时传递给视图 属性 path:请求的完整路径 ...
- Django QueryDict
QueryDict默认是不可变的,同过将QueryDict对象的_mutable 属性的值设置成True就可以为其赋值.QueryDict对象的urlencode()方法将QueryDict转换为字符 ...
- Django HttpRequest对象详解
WSGIRequest对象 Django在接收到http请求之后,会根据http请求携带的参数以及报文信息创建一个WSGIRequest对象,并且作为视图函数第一个参数传给视图函数.也就是我们经常看到 ...
- QueryDict对象
所在的包: django.http.QueryDict HttpRequest 对象中的 GET 和 POST 属性 都是 QueryDict类型 与python字典不同:QueryDict对象一个键 ...
- 运维开发笔记整理-QueryDict对象
运维开发笔记整理-QueryDict对象 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 客户端发送数据请求有很多种,相信运维人员已经很清楚了,如果不太清楚的话可以参考我之前的学习笔 ...
- 三.接收并处理请求参数与QueryDict对象
一.get与post请求:重点看传参与接收参数 GET请求与传参 ---->url后面跟上?k1=v1&&k2=v2 POST请求与数据提交 (1)get请求:如直接在浏览 ...
- 第二章:视图层 - 6:QueryDict对象
类的原型:class QueryDict[source] 在HttpRequest对象中,GET和POST属性都是一个django.http.QueryDict的实例.也就是说你可以按本文下面提供的方 ...
随机推荐
- unity3d-物理引擎
简介 物理引擎就是在游戏中模拟真实的物理效果,比如,场景中有两个立方体对象,一个在空中,一个在地面上,在空中的立方体开始自由下落,然后与地面上的立方体对象发生碰撞,而物理引擎就是用来模拟真实碰撞的效果 ...
- Oracle的FIXED_DATE参数
今天发现一个有意思的问题, 我们知道,在Oracle数据库中正常执行 select sysdate from dual 都可以返回当前主机的系统时间. 正常修改系统时间,对应的查询结果也会变成修改后的 ...
- 透过面试题来说说Promise
前言 我们先看看这几个来自大厂的面试题 面试题1: const promise = new Promise(function(resolve,reject){ console.log(1) resol ...
- matplotlib显示中文
[注意] 可能与本文主题无关,不过我还是想指出来:使用matplotlib库时,下面两种导入方式是等价的(我指的是等效,当然这个说法可以商榷:) import matplotlib.pyplot as ...
- 何为仿射变换(Affine Transformation)
http://www.cnblogs.com/ghj1976/p/5199086.html 变换模型是指根据待匹配图像与背景图像之间几何畸变的情况,所选择的能最佳拟合两幅图像之间变化的几何变换模型.可 ...
- Ignite集群管理——基于Zookeeper的节点发现
Ignite支持基于组播,静态IP,Zookeeper,JDBC等方式发现节点,本文主要介绍基于Zookeeper的节点发现. 环境准备,两台笔记本电脑A,B.A笔记本上使用VMware虚拟机安装了U ...
- VMWare中桥接、NAT、Host-only
1.概述 2.bridged(桥接模式) 3.NAT(网络地址转换模式) 4.host-only(主机模式) 5.replicate physical network connection state ...
- python3.4学习笔记(二十二) python 在字符串里面插入指定分割符,将list中的字符转为数字
python3.4学习笔记(二十二) python 在字符串里面插入指定分割符,将list中的字符转为数字在字符串里面插入指定分割符的方法,先把字符串变成list然后用join方法变成字符串str=' ...
- Struts2 Spring Hibernate 框架整合 Annotation MavenProject
项目结构目录 pom.xml 添加和管理jar包 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns ...
- ELK学习笔记之Logstash详解
0x00 Logstash概述 官方介绍:Logstash is an open source data collection engine with real-time pipelining cap ...