Django - 视图层 - QueryDict对象


对HTTP请求数据包中携带的数据的封装.
在HttpRequest对象中, GET和POST属性都是一个django.http.QueryDict的实例. 可以通过下面的方法操作request.POST和request.GET.

方法

>>> QueryDict('a=1&a=2&c=3')
<QueryDict: {'a': ['1', '2'], 'c':['3']}>

fromkeys(iterable, value=’’, mutable=False, encoding=None)

循环可迭代对象中的每个元素作为键值, 并赋予同样的值

>>> QueryDict.fromkeys(['a', 'a', 'b'], value='val')
<QueryDict: {'a': ['val', 'val'], 'b': ['val']}>

__getitem__(key)

根据提供的key, 返回对应的值.

__setitem__(key,value)

设置键值对.

__contains__(key)

如果QueryDict中又该key存在, 返回True

get(key, default=None)

根据提供的key, 返回对应的值, 如果不key不存在, 则返回default值

setdefault(key, default=None)

字典的setdafault()方法

update(other_dict)

用新的QueryDict或字典更新当前QueryDict. 追加内容, 而不是更新替换它们

>>> q = QueryDict('a=1', mutable=True)
>>> q.update('a': '2')
>>> q.getlist('a')
['1', '2']
>>> q['a']
'2'

items()

类似dict.items(), 如果有重复的项目, 返回最近的一个

>>> q = QueryDict('a=1&a=2&a=3')
>>> q.items()
[('a', '3')]

values()

类似dict.values(), 但是只返回最近的值

>>> q = QueryDict('a=1&a=2&a=3')
>>> q.values()
['3']

copy()

使用copy.deepcopy()返回QueryDict对象的副本, 此副本是可变的

getlist(key, default=None)

返回键对应的值列表, 如果该键不存在且未提供默认值, 则返回一个空列表

setlist(key, list_)

为list_设置给定的键

appendlist(key, item)

将键追加到内部与键相关联的列表中

lists()

类似items(), 只是它将其中的每个键的值作为列表放在一起.

>>> q = QueryDict('a=1&a=2&a=3')
>>> q.lists()
[('a', ['1', '2', '3'])]

pop(key)

返回给定键的值的列表, 并从QueryDict中移除该键.

>>> q = QueryDict('a=1&a=2&a=3', mutable=True)
>>> q.pop('a')
['1', '2', '3']

dict()

将QueryDict转换为Python的字典数据类型,并返回该字典
如果出现重复的键, 则将所有的值打包成一个列表, 作为新字典中键的值

>>> q = QueryDict('a=1&a=2')
>>> q.dict()
{'a': '5'}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值