Django--QueryDict对象

在HttpRequest对象中, GET和POST属性是django.http.QueryDict类的实例
QueryDict类似字典的自定义类,用来处理单键对应多值的情况。
QueryDict实现所有标准的词典方法。还包括一些特有的方法:
方法
描述
__getitem__
和标准字典的处理有一点不同,就是,如果Key对应多个Value,__getitem__()返回最后一个value。
__setitem__
设置参数指定key的value列表(一个Python list)。注意:它只能在一个mutable QueryDict 对象上被调用(就是通过copy()产生的一个QueryDict对象的拷贝).
get(key,default=None)
返回key所对应的value,若key不存在,则返回default的值。如果key对应多个value,get()返回最后一个value。
update()
参数可以是QueryDict,也可以是标准字典。和标准字典的update方法不同,该方法添加字典 items,而不是替换它们:
>>> q = QueryDict('a=1')
 
>>> q = q.copy() # to make it mutable
 
>>> q.update({'a': '2'})
 
>>> q.getlist('a')
 
['1', '2']
 
>>> q['a'] # returns the last
 
['2']
items()
和标准字典的items()方法有一点不同,该方法使用单值逻辑的__getitem__():
>>> q = QueryDict('a=1&a=2&a=3')
 
>>> q.items()
 
[('a', '3')]
values()
和标准字典的values()方法有一点不同,该方法使用单值逻辑的__getitem__():
 
此外, QueryDict也有一些方法,如下表:
方法
描述
copy()
返回对象的拷贝,内部实现是用Python标准库的copy.deepcopy()。该拷贝是mutable(可更改的) — 就是说,可以更改该拷贝的值。
getlist(key)
返回和参数key对应的所有值,作为一个Python list返回。如果key不存在,则返回空list。 It's guaranteed to return a list of some sort..
setlist(key,list_)
设置key的值为list_ (unlike __setitem__()).
appendlist(key,item)
添加item到和key关联的内部list.
setlistdefault(key,list)
和setdefault有一点不同,它接受list而不是单个value作为参数。
lists()
和items()有一点不同, 它会返回key的所有值,作为一个list, 例如:
>>> q = QueryDict('a=1&a=2&a=3')
 
>>> q.lists()
 
[('a', ['1', '2', '3'])]
urlencode()
返回一个以查询字符串格式进行格式化后的字符串(例如:"a=2&b=3&b=5")。
 

posted @ 2020-11-15 18:00  盲仔不瞎忙  阅读(28)  评论(0编辑  收藏  举报