视图中,用户发送的get与post请求数据,都被封装为QueryDict对象了

认识一下QueryDict对象

该对象类似于一个字典

QueryDict源码

class QueryDict(MultiValueDict):"""A specialized MultiValueDict which represents a query string.A QueryDict can be used to represent GET or POST data. It subclassesMultiValueDict since keys in such data can be repeated, for instancein the data from a form with a <select multiple> field.By default QueryDicts are immutable, though the copy() methodwill always return a mutable copy.Both keys and values set on this class are converted from the given encoding(DEFAULT_CHARSET by default) to str."""# These are both reset in __init__, but is specified here at the class# level so that unpickling will have valid values_mutable = True_encoding = Nonedef __init__(self, query_string=None, mutable=False, encoding=None):super().__init__()self.encoding = encoding or settings.DEFAULT_CHARSETquery_string = query_string or ''parse_qsl_kwargs = {'keep_blank_values': True,'fields_limit': settings.DATA_UPLOAD_MAX_NUMBER_FIELDS,'encoding': self.encoding,}if isinstance(query_string, bytes):# query_string normally contains URL-encoded data, a subset of ASCII.try:query_string = query_string.decode(self.encoding)except UnicodeDecodeError:# ... but some user agents are misbehaving :-(query_string = query_string.decode('iso-8859-1')for key, value in limited_parse_qsl(query_string, **parse_qsl_kwargs):self.appendlist(key, value)self._mutable = mutable

注释的翻译

一种表示查询字符串的专用多值专家。
querydict可用于表示get或post数据。IT子类
例如,由于这些数据中的键可以重复,所以多值医学
在表单的数据中有一个字段。
默认情况下,querydict是不可变的,尽管copy()方法
将始终返回可变副本。
此类上设置的键和值都是从给定的编码转换而来的
(默认字符集)到str。

QueryDict类创建的对象

》实例化QueryDict的时候,传参注意

参数格式类似于get请求的格式

QueryDict与字典的相似之处

》取值,两种方式

字典【键】

字典.get(键)

》取的值不存在时

字典【键】,会报错

字典.get(键),不报错,返回一个None

也可以设置一个默认的返回值

这些用法同python字典一模一样

QueryDict与字典不同之处

》关注键对应的值

关注,name键对应的值,好像是列表

然而,取值的时候,拿到的却不是列表

》字典的一个键只对应一个值

如果再次给键值,覆盖操作

》QueryDict字典的一个键可以有多个值

取值的时候,会得到键所对应的列表里,最未位的数据

当前a键对应的列表,最未位值为 ‘3’

》要获取键所对应的完整的列表

QueryDict对象.getlist(键)

》什么情况下需要取出这样的列表?

我们提交多选框的数据时,就会一次传过去多个数据

试一试,checkbox多选的传参,看看get请求的结果

最后

QueryDict的特性理解后

对于视图中的

request.GET

request.POST

等等类型的操作,就可以更清晰了

django-QueryDict对象相关推荐

  1. Django框架(20.Django的视图函数的request参数以及QueryDict对象)

    HttpReqeust对象 服务器接收到http协议的请求后,会根据报文创建HttpRequest对象,这个对象不需要我们创建,直接使用服务器构造好的对象就可以.视图的第一个参数必须是HttpRequ ...

  2. Django从理论到实战(part42)--QueryDict对象

    学习笔记,仅供参考,有错必纠 参考自:Django打造大型企业官网–Huang Y: 文章目录 QueryDict对象 QueryDict对象 我们平时用的request.GET和request.PO ...

  3. django中的querydict对象_Django之MTV实战(2)

    [toc] Hello, 各位,我回来了,大家别以为我消失了,我还是在的... 最近忙于家里重要事情,不能定期及时更新,请包含... 忙里挑一,我还是在后台默默的码了几篇文章,前提要保证下质量,才能发 ...

  4. Django Request对象3.3

    HttpReqeust对象 服务器接收到http协议的请求后,会根据报文创建HttpRequest对象 视图函数的第一个参数是HttpRequest对象 在django.http模块中定义了HttpR ...

  5. QueryDict对象

    QueryDict对象 定义在django.http.QueryDict request对象的属性GET.POST都是QueryDict类型的对象 与python字典不同,QueryDict类型的对象 ...

  6. django model对象修改_Django之Model的Meta选项详解

    Django默认生成的表名: 应用名小写_模型类名小写 可以通过在模型类中定义Meta类来修改表名: class Department(models.Model):""" ...

  7. django request对象和HttpResponse对象

    HttpRequest对象(除非特殊说明,所有属性都是只读,session属性是个例外) HttpRequest.scheme 请求方案(通常为http或https) HttpRequest.body ...

  8. Django request对象

    Django request对象 1 简介 服务器接收到http协议的请求后,会根据报文创建HttpRequest对象,这个对象不需要我们创建,直接使用服务器构造好的对象就可以.视图的第一个参数必须是 ...

  9. django返回对象Response

    django返回对象Response 参考:https://www.cnblogs.com/huwei934/p/6978641.html 一.不调用模板 不使用模板,直接返回数据,如: def te ...

  10. Django Response对象3.4

    HttpResponse对象 在django.http模块中定义了HttpResponse对象的API HttpRequest对象由Django自动创建,HttpResponse对象由程序员创建 不调 ...

最新文章

  1. swift 中跳转web view的两种方法
  2. 计算机基础教案(XP操作系统)
  3. java 风格的正则表达式 vs Perl风格的正则表达式
  4. 价格走势PHP源码,php多币种区块链交易所源码 存取功能齐全+最新价格走势正常...
  5. JasperMES.cn JasperMES.com.cn 我的MES网站
  6. 正常情况下ffmpeg生成moov是在mdat写完成之后写入
  7. codeforces B. Fox and Cross 解题报告
  8. 遍历处理path及其子目录所有文件
  9. 软件架构设计案例_透过现象看本质:常见的前端架构风格和案例
  10. Docker 安装 MongoDB
  11. 测试面试题集-2.测试用例设计
  12. ajax+对号,操作成功动画效果(圆圈变成勾号)
  13. 小瓦怕扫地机器人_小瓦扫地机器人青春版评测:便宜有好货
  14. unity webplayer 与html 传参
  15. fread函数在C语言中的用法,c语言fread函数的用法
  16. JAVA IO ---------- File类(转自 skywang12345)
  17. dojo的API功能介绍
  18. com.netflix.discovery.DiscoveryClient : Completed shut down of DiscoveryClient
  19. 关于组件之间使用provide和inject传值
  20. 小手一敲,让JS Map现原形

热门文章

  1. eyoucms 入门必备
  2. 风铃发卡网源码-可商用,支持个人码支付,当面付
  3. 有效值和峰峰值的关系_4.数据预处理—缺失值处理(二)
  4. excel vlookup用法_Python中也可以写Excel中的“Vlookup”函数?太牛逼了吧!
  5. golang的一款cms内容管理系统
  6. 专业的在线ps照片处理网页源码
  7. 计算机密码忘了 开不了机怎么办,电脑设了开机密码现在忘了开不了机怎么处理?...
  8. Java快速入门学习笔记3 | Java语言中的表达式与操作符
  9. elementUI Drawer 抽屉 Dialog 对话框 等弹出组件的遮罩层以及多层遮罩解决办法
  10. CSShack,CSS hack