Ответ 1
request.POST['sth']
вызывает исключение KeyError
, если 'sth'
не находится в request.POST
.
request.POST.get('sth')
вернет None
, если 'sth'
не находится в request.POST
.
Кроме того, .get
позволяет вам предоставить дополнительный параметр значения по умолчанию, которое возвращается, если ключ не находится в словаре. Например, request.POST.get('sth', 'mydefaultvalue')
Это поведение любого словаря python и не относится к request.POST
.
Эти два фрагмента функционально идентичны:
Первый фрагмент:
try:
x = request.POST['sth']
except KeyError:
x = None
Второй фрагмент:
x = request.POST.get('sth')
Эти два фрагмента функционально идентичны:
Первый фрагмент:
try:
x = request.POST['sth']
except KeyError:
x = -1
Второй фрагмент:
x = request.POST.get('sth', -1)
Эти два фрагмента функционально идентичны:
Первый фрагмент:
if 'sth' in request.POST:
x = request.POST['sth']
else:
x = -1
Второй фрагмент:
x = request.POST.get('sth', -1)