django.http.request中QueryDict 对象
在一个 HttpRequest 对象中, GET 和 POST 属性都是 django.http.QueryDict 的实例。 QueryDict 是一个类似于字典的类,专门用来处理用一个键的多值。当处理一些HTML表单中的元素,特别是 <select multiple="multiple"> 之类传递同一key的多值的元素时,就需要这个类了。
QueryDict 实例是不可变的,除非创建了一个 copy() 副本。也就是说不能直接更改 request.POST 和 request.GET 的属性。
QueryDict 实现了所有标准的字典的方法,因为它正是字典的一个子类。与其不同的东西已在下表中列出。
QueryDicts 与标准字典的区别 |
|
方法 |
与标准字典实现的不同 |
__getitem__ |
与一个字典一样。但是,当一个键有多个值时, __getitem__() 返回最后一个值。 |
__setitem__ |
将所给键的值设为 [value] (一个只有一个 value 元素的 Python列表)。 注意,因对其它的字典函数有副作用,故它只能被称为一个可变的 QueryDict (通过 copy() 创建)。 |
get() |
如果一个键多个值,和 __getitem__ 一样, get() 返回最后一个值。 |
update() |
参数是一个 QueryDict 或标准字典。 和标准字典的 update 不同,这个方法*增加*而不是替换一项内容: >>> q = QueryDict('a=1') >>> q = q.copy() # 使其可变 >>> q.update({'a': '2'}) >>> q.getlist('a') ['1', '2'] >>> q['a'] # 返回最后一个值 ['2'] |
items() |
和标准字典的 items() 方法一样, 不同的是它和 __getitem()__ 一样,返回最后一个值: >>> q = QueryDict('a=1&a=2&a=3') >>> q.items() [('a', '3')] |
values() |
和标准字典的 values() 方法一样, 不同的是它和 __getitem()__ 一样,返回最后一个值。 |
附加的 (非字典的) QueryDict 方法 |
|
方法 |
描述 |
copy() |
返回一个对象的副本,使用的是Python标准库中的 copy.deepcopy() 。 该副本是可变的,也就是说,你能改变它的值。 |
getlist(key) |
以Python列表的形式返回所请求键的数据。若键不存在则返回空列表。它保证了一定会返回某种形式的list。 |
setlist(key, list_) |
将所给键的键值设为 list_ (与 __setitem__() 不同)。 |
appendlist(key, item) |
在 key 相关的list上增加 item 。 |
setlistdefault(key, l) |
和 setdefault 一样, 不同的是它的第二个参数是一个列表,而不是一个值。 |
lists() |
和 items() 一样, 不同的是它以一个列表的形式返回字典每一个成员的所有值。 例如: >>> q = QueryDict('a=1&a=2&a=3') >>> q.lists() [('a', ['1', '2', '3'])] |
urlencode() |
返回一个请求字符串格式的数据字符串(如, "a=2&b=3&b=5" )。 |
最新文章
- DBCP 配置备注
- OpenMesh 将默认的 float 类型改为 double 类型
- SQL2008中的Sequence
- 基于jFinal建立简单的服务端-接收请求并返回指定内容
- Java for LeetCode 060 Permutation Sequence
- Linux下的sniffer工具--TcpDump的安装和使用
- 多线程/进度条应用(progressbar)
- 通用函数get和set
- Struts2WebUtil
- 51Testing丛书新作《软件测试工程师面试秘籍》
- GCC相关的环境变量
- Linux 分区初始化为物理卷,把物理卷加入卷组
- SecureCRT安装
- ASP.NET Core中使用GraphQL - 最终章 Data Loader
- python 线程Queue 用法代码展示
- cocos2dx添加新的类后出现错误undefined reference to的解决办法
- 关于java中Static关键字的加强理解
- MYSQL数据库中,常见的数据类型有哪些?它们与java中的数据类型如何对应
- Django:haystack全文检索详细教程
- zookeeper单机版安装
热门文章
- c#反射动态创建窗体
- 【插件式框架探索系列】应用程序域(AppDomain)
- 泡泡一分钟:Visual Odometry Using a Homography Formulation with Decoupled Rotation and Translation Estimation Using Minimal Solutions
- Web.Config中配置字符串含引号的处理
- Spring 中使用了哪些设计模式?
- 【Linux】Jenkins以war包运行及开机启动配置(四)
- 报错:MetaException(message:Version information not found in metastore. )
- Spring Cloud Config 分布式配置管理 5.3
- Python - Django - request 对象
- Delphi 调用控件的过程,初学者都想知道