刚认识Django的人能解释一下
username=form.cleaned_data['username']
对
username=form.cleaned_data.get('username')
发布于 2012-12-18 17:16:52
如果找不到KeyError
键,这将引发username
。
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
发布于 2012-12-18 17:16:35
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
发布于 2012-12-18 17:15:38
来自医生们
get
(键,默认) 如果键在字典中,则返回键的值,否则为默认值。如果未给出默认值,则默认为None
,因此此方法不会引发KeyError
。
https://stackoverflow.com/questions/13938091
复制相似问题