django - requests - 提交post请求




request.POST.get('sth')vs request.POST['sth']-区别? (2)

如果'sth'不在request.POST request.POST['sth']将引发KeyError异常。

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

此外, .get允许您提供默认值的附加参数,如果该键不在字典中,则返回该参数。 例如, request.POST.get('sth', 'mydefaultvalue')

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


这两个片段在功能上是相同的:

第一个片段:

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


第二个片段:

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


这两个片段在功能上是相同的:

第一个片段:

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


第二个片段:

x = request.POST.get('sth', -1)


这两个片段在功能上是相同的:

第一个片段:

if 'sth' in request.POST:
    x = request.POST['sth']
else:
    x = -1


第二个片段:

x = request.POST.get('sth', -1)

有什么区别

request.POST.get('sth')

request.POST['sth']

没有找到类似的问题,对我来说都是一样的,假设我可以单独使用它们但也许我错了,这就是我要问的原因。 有任何想法吗?


普通字典访问和使用.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()方法优于普通字典访问的优势。







django