【django学习】request.POST与request.POST.get两者主要区别

本文链接:https://blog.csdn.net/xun527/article/details/87777576
request.POST是用来接收前端传过来的数据
 

一、request.POST.get('sth')与 request.POST ['sth'] - 区别
request.POST['sth']KeyError如果'sth'不在,将提出异常request.POST。

request.POST.get('sth')将返回None如果'sth'不在request.POST。

此外,.get允许您提供默认值的附加参数,如果该键不在字典中,则返回该参数。

例如,request.POST.get('sth', 'mydefaultvalue')

这是任何python字典的行为,并不是特定的request.POST。

 

二、这两个片段在功能上是相同的:
第一个片段:

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

第二个片段:
x = request.POST.get('sth', -1)
如果数值不存在的话,我们可以指定显示的默认值:

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


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

list_test = {'a': 1, 'b': 2}

list_test.get('a')  # 得到结果1
list_test.get('c')  # 得到结果none
list_test.get('c', 3)  # 得到设定的默认值3
list_test['b']   # 得到结果 2
list_test['c']   # 返回一个Keyvalue 错误类型
三:正常字典访问和使用.get()访问它的主要区别:
使用类似request.POST['sth']意愿的东西 会出现一个关键错误,如果不存在''sth'。但是使用get()方法字典也会为您提供更好的错误处理

request.POST.get('sth')
将返回没有键是'sth不存在',并且通过给第二个参数get()将返回它作为默认值。

data = request.POST.get('sth','my_default_value')
如果'sth'键不存在,则数据中的值将为my_default_value。这是使用get()方法优于普通字典访问的优势。


参考:https://stackoverflow.com/questions/12518517/request-post-getsth-vs-request-poststh-difference

posted @ 2019-11-15 10:30  瘋耔  阅读(1176)  评论(0编辑  收藏  举报
跳至侧栏