目录
对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'}