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" )。 |
django.http.request中QueryDict 对象的更多相关文章
- django.http.request中HttpRequest对象的一些属性与方法
HttpRequest对象的属性 属性 描述 path 表示提交请求页面完整地址的字符串,不包括域名,如 "/music/bands/the_beatles/". method 表 ...
- Request对象和Response对象 JsonResponse对象 和 Django shortcut functions 和QueryDict对象
request request属性 属性: django将请求报文中的请求行.头部信息.内容主体封装成 HttpRequest 类中的属性. 除了特殊说明的之外,其他均为只读的. ''' 0.Http ...
- Django使用request和response对象
当请求一张页面时,Django把请求的metadata数据包装成一个HttpRequest对象,然后Django加载合适的view方法,把这个HttpRequest 对象作为第一个参数传给view方法 ...
- django基础知识之QueryDict对象:
QueryDict对象 定义在django.http.QueryDict request对象的属性GET.POST都是QueryDict类型的对象 与python字典不同,QueryDict类型的对象 ...
- django的orm中F对象的使用
今天不巧就用上了. 就是将数据库的字段,自增1的场景. from django.db.models import F DeployPool.objects.filter(name=deployvers ...
- Js获取request中的对象的属相值
将这个值放在页面上.再取出来. 在body中定义隐藏属性的input按钮来接收request中的值: <input type="hidden" value="< ...
- django的request对象和response对象
概述Django 使用 request 和 response 对象表示系统状态数据..当请求一个页面时,Django创建一个 HttpRequest 对象.该对象包含 request 的元数据. 然后 ...
- Django的views中的request
Django使用request和response对象在系统间传递状态. 当一个页面被请示时,Django创建一个包含请求元数据的 HttpRequest 对象. 然后Django调入合适的视图,把Ht ...
- Django中F对象,Q对象与运算符
在Django的模型中F对象与Q对象比较常用的,所以单独说一下: F对象 F对象位于django.dc.models模板下,使用的时候记得首先导入!!! 作用:F对象主要用于当模型的字段A与字段B进行 ...
随机推荐
- YII2 composer update 报错解决一例-requires bower-asset/jquery 2.2
➜ yii-advanced composer update Loading composer repositories with package information Updating depe ...
- Hibernate Tools插件的安装和使用
http://ricki.iteye.com/blog/842343 http://blog.csdn.net/kinmet2010/article/details/5976869 http://ww ...
- JQuery中formSerialize()报错:对象不支持"formSerialize"属性或方法
formSerialize()是jQuery的表单插件中提供的方法. formSerialize()的核心方法是:$.param(data); Form表单经过formSerialize(),被序列化 ...
- grib2文件格式说明
GRIB是一种二进制编码的名称,用于加工资料的传输和交换,GRIB编码的分析或预报产品是由一系列八位组构成的连续比特流组成.在GRIB2中编码资料主要分为9段. 0段——指示段八位组序号 ...
- 004-行为型-03-观察者模式(Observer)
一.概述 当对象间存在一对多关系时,则使用观察者模式(Observer Pattern).比如,当一个对象被修改时,则会自动通知它的依赖对象. 定义了对象之间的一对多依赖,让多个观察者对象同时监听某一 ...
- 【Mybatis】MyBatis之配置多数据源(十)
在做项目的过程中,有时候一个数据源是不够,那么就需要配置多个数据源.本例介绍mybatis多数据源配置 前言 一般项目单数据源,使用流程如下: 单个数据源绑定给sessionFactory,再在Dao ...
- 【GStreamer开发】GStreamer播放教程07——自定义playbin2的sink
目标 通过手动选择音频和视频的sink,playbin2可以进一步定制.这允许使用playbin2的应用在解码后可以自行做最终的渲染和显示.本教程展示了: 如何替换playbin2选择的sink 如何 ...
- Swoole练习 UDP
UDP 服务代码 <?php //创建Server对象,监听 127.0.0.1:9502端口,类型为SWOOLE_SOCK_UDP $serv = new swoole_server(&quo ...
- [CF1051F]The Shortest Statement_堆优化dij_最短路树_倍增lca
The Shortest Statement 题目链接:https://codeforces.com/contest/1051/problem/F 数据范围:略. 题解: 关于这个题,有一个重要的性质 ...
- LeetCode 941. 有效的山脉数组(Valid Mountain Array)
941. 有效的山脉数组 941. Valid Mountain Array 题目描述 给定一个整数数组 A,如果它是有效的山脉数组就返回 true,否则返回 false. 让我们回顾一下,如果 A ...