• 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")。
     

  • 相关阅读:
    HDU 1116 Play on Words(并查集和欧拉回路)(有向图的欧拉回路)
    PHP 错误与异常 笔记与总结(8)自定义错误处理函数 set_error_handler()
    【VR】Leap Motion 官网文档 FingerModel (手指模型)
    2014年辛星解读Javascript之DOM之事件及其绑定
    java.util.logging.Logger使用具体解释
    技术走向管理一些思考(8)-适合的人才
    rac_grid自检提示缺少cvuqdisk包
    C++第15周(春)项目3
    交换a、b的值temp = a; a = b; b = temp;比a = a^b;b = a^b;a = a^b;快
    BZOJ 1089 SCOI2003 严格n元树 动态规划+高精度
  • 原文地址:https://www.cnblogs.com/absoluteli/p/13977662.html
Copyright © 2020-2023  润新知