博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
django:multivaluedictkeyerror错误
阅读量:4880 次
发布时间:2019-06-11

本文共 786 字,大约阅读时间需要 2 分钟。

查了一下,是因为获取前台数据时,用了request.POST[],改用request.POST.get()之后没有这个报错了 

细节:

request.POST是用来接受从前端表单中传过来的数据,比如用户登录过程中传递过来的username、passwrod等字段。

我们在后台进行数据获取时,有两种方法(以username为例):request.POST[‘username’]与request.POST.get(‘username’),那么这两者有什么不同之处呢?

如果传递过来的数值不为空,那么这两种方法都没有错误,可以得到相同的结果。但是如果传递过来的数值为空,那么request.POST[‘username’]则会提示Keyerror错误,而request.POST.get(‘username’)则不会报错,而是返回一个none。举例来说:

try:x = request.POST['sth']except KeyError:x = None

 

x = request.POST.get('sth')

 

以上两种写法是等价的。

如果数值不存在的话,我们可以指定显示的默认值:

x = request.POST.get('sth', 'default_value')

这里我们可以拿字典对象来进行理解:

list_test = {
'a': 1, 'b': 2}list_test.get('a') # 得到结果1list_test.get('c') # 得到结果nonelist_test.get('c', 3) # 得到设定的默认值3list_test['b'] # 得到结果 2list_test['c'] # 返回一个Keyvalue 错误类型

参考:

转载于:https://www.cnblogs.com/gcgc/p/10401458.html

你可能感兴趣的文章
树型DP
查看>>
怎么在ubuntu上使用pidgin登陆QQ
查看>>
思维的惰性
查看>>
2018-2019-2 网络对抗技术 20165115 Exp3 免杀原理与实践
查看>>
【Android】学习记录<1> -- 初识ffmpeg
查看>>
定位页面元素的位置
查看>>
关于IAsyncResult接口的CompletedSynchronously属性
查看>>
Python:一篇文章掌握Numpy的基本用法
查看>>
序列化与ArrayList 的elementData的修饰关键字transient
查看>>
学习进度17
查看>>
编译原理——算符优先分析文法(附源代码)
查看>>
jboss的启动过程
查看>>
渲染部分
查看>>
力扣——所有可能的路径
查看>>
关于VS项目平台的x86,x64,Any CPU以及Debug和Release的区别
查看>>
解密module_init幕后的故事
查看>>
9个移动网站优化的最佳实践
查看>>
李昌镐:苍老的青春(转载) 韩国围棋职业棋手
查看>>
JPA 使用报Named query not found错误
查看>>
FTP命令使用详解
查看>>