• QueryDIct对象


    • QueryDIct对象
    在HttpRequest 对象中,GET 和POST 属性是django.http.QueryDict 的实例,它是一个自
    定义的类似字典的类,用来处理同一个键带有多个值。这个类的需求来自某些HTML 表单
    元素传递多个值给同一个键
    request.POST 和request.GET 的QueryDict 在一个正常的请求/响应循环中是不可变的。若
    要获得可变的版本,需要使用.copy()。
    • 实例化QueryDict
    QueryDict.__init__(query_string=None, mutable=False, encoding=None)
    • 示例
    >>> QueryDict('a=1&a=2&c=3')
    <QueryDict: {'a': ['1', '2'], 'c': ['3']}>
    • 通过fromkeys实例化QueryDict (1.11新增)
    classmethod QueryDict.fromkeys(iterable, value=”, mutable=False, encoding=None)
    • 示例
    >>> QueryDict.fromkeys(['a', 'a', 'b'], value='val')
    <QueryDict: {'a': ['val', 'val'], 'b': ['val']}>
    • QueryDict方法
    QueryDict.get(key, default=None)  #有多个值的话只能取最后一个,可以通过getlist取
    QueryDict.setdefault(key, default=None)[source]
    QueryDict.update(other_dict)
    QueryDict.items()
    QueryDict.values()#用values提取数据有多个值的话会丢失数据
    QueryDict.copy()
    QueryDict.getlist(key, default=None)
    QueryDict.setlist(key, list_)[source]
    QueryDict.appendlist(key, item)
    QueryDict.setlistdefault(key, default_list=None)
    QueryDict.lists()
    QueryDict.pop(key)
    QueryDict.popitem()
    QueryDict.dict() 转换成字典多个值会丢参数
    QueryDict.urlencode(safe=None)  #转换成url格式字符串
    • ipython演示

    执行下面命令进入ipython交互界面

    python manage.py shell
    In [1]: from django.http import QueryDict
    
    In [2]: GET=QueryDict("a=1&b=2&b=3")
    
    In [3]: GET
    Out[3]: <QueryDict: {'a': ['1'], 'b': ['2', '3']}>  #返回结果和浏览器中传入参数?a=1&b=2&b=3类似
    • 取值
    In [1]: from django.http import QueryDict
    
    In [2]: GET=QueryDict("a=1&b=2&b=3")
    
    In [3]: GET
    Out[3]: <QueryDict: {'a': ['1'], 'b': ['2', '3']}>
    
    In [4]: GET.get('a')
    Out[4]: '1'
    
    In [5]: GET.get('b')
    Out[5]: '3'
    
    In [6]: GET.getlist('b')
    Out[6]: ['2', '3']
    
    In [7]: GET.values()
    Out[7]: <generator object MultiValueDict.values at 0x7fd2420f6eb8>
    In [9]: [k for k in GET.values()]
    Out[9]: ['1', '3']
    
    In [10]: GET.urlencode()
    Out[10]: 'a=1&b=2&b=3'
  • 相关阅读:
    Windows的安全模型
    pefile解析PE格式
    在Linux下安装PyEmu
    Python的数据类型
    从pcap文件中分析出数据包
    Cuckoo架构
    Linux上调试python程序
    Linux关闭端口
    在Windows上安装部署Cuckoo
    分析由Python编写的大型项目(Volatility和Cuckoo)
  • 原文地址:https://www.cnblogs.com/jiaqili/p/14322066.html
Copyright © 2020-2023  润新知