我试图从API获取数据
1 request.data [‘param-name’]
输出 – :’9121009000′
2 request.data.get(‘param-name’)
输出 – :’9121009000′
两者都给出了相同的结果.
那么哪一个最好使用获取数据和为什么.
提前致谢
最佳答案 如果你执行request.data [‘key’]调用,在幕后,
Python将调用request.data的__getitem__函数.我们可以阅读
the documentation并看到:
QueryDict.__getitem__(key)
Returns the value for the given
key
. If thekey
has more than one
value, it returns the last value. Raises
django.utils.datastructures.MultiValueDictKeyError
if the key does
not exist. (This is a subclass of Python’s standardKeyError
, so
you can stick to catchingKeyError
.)
然而,如果你执行request.data.get(‘key’),它将调用.get(..)`函数,我们在documentantation中看到:
QueryDict.get(key, default=None)
Uses the same logic as
__getitem__()
, with a hook for returning a
default value if the key doesn’t exist.
所以这意味着如果密钥不存在,.get(..)将返回None,以防您没有提供默认值,或者如果您使用request.data.get查询它将返回给定的默认值(‘key’ ,某些默认).
通常,后者用于值是可选的,并且您希望减少检查密钥是否存在的代码量.