Если вы выполните вызов request.data['key']
, то за кулисами Python вызовет функцию __getitem__
для request.data
.Мы можем прочитать документацию и увидеть:
QueryDict.__getitem__(key)
Возвращает значение для данного key
.Если key
имеет более одного значения, возвращается последнее значение. Повышает django.utils.datastructures.MultiValueDictKeyError
, если ключ не существует .(Это подкласс стандартного языка Python KeyError
, поэтому вы можете использовать KeyError
.)
Принимая во внимание, что если вы выполняете функцию request.data.get('key'), it will call the
.get (..) `, имы видим в documentantation :
QueryDict.get(key, default=None)
Использует ту же логику, что и __getitem__()
, с ловушка для возврата значения по умолчанию , если ключ не существует.
Таким образом, это означает, что если ключ не существует, .get(..)
вернет None
, если вы это сделали не обеспечивает значение по умолчанию, или оно возвратит заданное значение по умолчанию, если вы запросите с помощью request.data.get('key', somedefault)
.
Обычно последнее используется, если значение является необязательным, и вы хотите уменьшить значениеколичество кода, чтобы проверить, существует ли ключ.