0

Django的新手,有人可以解释一下

username=form.cleaned_data['username']

对比

username=form.cleaned_data.get('username')
4

3 回答 3

4

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-18T17:16:35.267 回答
3

这将引发一个KeyErrorif usernamekey 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
于 2012-12-18T17:16:52.360 回答
2

文档

get[,默认])

如果key在字典中,则返回key的值,否则返回default。如果未给出默认值,则默认为因此此方法永远不会引发。NoneKeyError

于 2012-12-18T17:15:38.787 回答