Django的新手,有人可以解释一下
username=form.cleaned_data['username']
对比
username=form.cleaned_data.get('username')
Django的新手,有人可以解释一下
username=form.cleaned_data['username']
对比
username=form.cleaned_data.get('username')
form.cleaned_data
是一本字典。如果您尝试像这样通过字典直接访问密钥,如果找不到密钥,则会引发错误。
>>> ex_dict = {}
>>> ex_dict = {'x':1, 'y':2}
>>> ex_dict['z']
Traceback (most recent call last):
File "<console>", line 1, in <module>
KeyError: 'z'
然而,如果你使用get
字典,它会返回None
而不是错误,或者你可以指定你期望的返回,如果没有找到键。
>>> ex_dict.get('z')
>>> ex_dict.get('z', 1)
1
这将引发一个KeyError
if username
key is not found
form.cleaned_data['username']
但是如果找不到密钥,这将返回None
(默认情况下),不会引发KeyError
异常。
form.cleaned_data.get('username')
.get
如果未找到键,您可以选择更改默认返回值(如果使用)。
val = form.cleaned_data.get('username', False)
# assume key was not found
print val # should contains False now
从文档:
get
(键[,默认])如果key在字典中,则返回key的值,否则返回default。如果未给出默认值,则默认为,因此此方法永远不会引发。
None
KeyError