高级视图_QueryDict对象

QueryDict对象

1、在HttpRequest对象中,属性GET和POST得到的都是django.http.QueryDict所创建的实例。这是一个django自定义的类似字典的类,这个对象继承于dict,因此用法跟dict相差无几

2、即:HttpRequest对象的GET或POST属性返回的返回值(使用request.GET或request.POST用来获取的前端传递过来的参数),是一个QueryDict对象,这个对象继承于dict,其用法与用法跟dict类似。只是说在某些特定的情况下,用来可能不一致

3、QueryDict对象与dict(字典)的区别:
    ⑴在python原始的字典中,当一个键出现多个值的时候会发生冲突,只保留最后一个值
    ⑵而在HTML表单中,通常会发生一个键有多个值的情况,例如<select multiple>(多选框)就是一个很常见情况。这个时候在获取传递过来的QueryDict对象中的值时就不可能说只保留其中一个了,而是需要全部都获取

4、request.POST和request.GET的QueryDict在一个正常的请求/响应循环中是不可变的。若要获得可变的版本,需要使用.copy()方法

例1:Python字典中一键对应多值

a = {"a":1,"b":2}
b = {"A":2,"b":3}

a.update(b)
print(a)
print(b)

"""
{'a': 1, 'b': 3, 'A': 2}
{'b': 3, 'A': 2}
#更新时两个字典中都含有键"b",但是更新后输出结果之后保留后面那个值(将字典b更新到字典a中)
"""

例2:
⑴编辑视图

⑵查看源代码

注:
1、总的来说就是QueryDict对象下面包含了很多方法,这些方法都可以用来处理通过request.GET或request.POST属性获得的QueryDict对象

2、在QueryDict对象方法中最常用的就是get()方法或getlist()方法(主要学习这两个方法)

3、QueryDict对象表示:
    ⑴前端通过查询字符串(URL)或表单(POST)传递到服务器的参数(数据),Django会把这些参数(数据)打包成一个QueryDict对象,因此可以使用QueryDict对象下的方法来处理这些数据

4、查询字符串参数:http://127.0.0.1:8000/login/?username=zh&password=123456。问号后面的就是查询字符串参数:以键值对形式存在
    ⑴服务中通过:request.GET.get("键名")获取。未获取到对应的值时返回None

5、表单数据:通过HTML页面中的form标签提交。<input type="password" name="passWord">。前端页面输入框中就是我们要提交的数据
    ⑴服务中通过:request.POST.get("name属性值")获取(input标签中name属性的值获取)。未获取到对应的值时返回None

例2_1:查询字符串参数

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值