request.GET & request.POST,它们都是 QueryDict 对象(只读)

除了所有Py字典的标准方法之外,还有以下方法:

1. 【速查表单】

方法 描述
init() 实例化
update() 更新当前 QueryDict(追加)
items() 返回项目(多个返回最近的)
values() 返回最近的值
lists() 类似于 items()
pop() 删除并返回
dict() 将 QueryDict 转为 Py字典并返回
urlencode()
urlencode(safe=) 使用safe参数传递不需要编码的字符
  1. # 创建一个QueryDict 对象,模拟 request.GET
  2. >>> QueryDict('a=1&a=2&c=3')

1.1. init():实例化

  1. # 创建操作即init()
  2. >>> QueryDict('a=1&a=2&c=3')
  3. <QueryDict: {'a': ['1', '2'], 'c': ['3']}>

传入的键值可以重复

1.2. update():更新当前 QueryDict(追加)

  1. >>> q = QueryDict('a=1', mutable=True)
  2. >>> q.update({'a': '2'})
  3. >>> q.getlist('a')
  4. ['1', '2']
  5. >>> q['a'] # returns the last
  6. '2'

mutable 是否为可变

1.3. items():返回项目(多个返回最近的)

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

1.4. values():返回最近的值

  1. >>> q.values()
  2. ['3']

1.5. lists():类似于 items()

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

1.6. pop():删除并返回

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

1.7. dict():将 QueryDict 转为 Py字典并返回

  1. >>> q = QueryDict('a=1&a=3&a=5')
  2. >>> q.dict()
  3. {'a': '5'}

多个值重复键会保留最新的

1.8. urlencode()

  1. >>> q = QueryDict('a=2&b=3&b=5')
  2. >>> q.urlencode()
  3. 'a=2&b=3&b=5'

1.9. urlencode(safe=):使用safe参数传递不需要编码的字符

  1. >>> q = QueryDict(mutable=True)
  2. >>> q['next'] = '/a&b/'
  3. >>> q.urlencode(safe='/')
  4. 'next=/a%26b/'