request.POST['sth']generará una KeyErrorexcepción si 'sth'no está en request.POST.
request.POST.get('sth')Regresará Nonesi 'sth'no está en request.POST.
Además, le .getpermite proporcionar un parámetro adicional de un valor predeterminado que se devuelve si la clave no está en el diccionario. Por ejemplo,request.POST.get('sth', 'mydefaultvalue')
Este es el comportamiento de cualquier diccionario de Python y no es específico de request.POST.
Estos dos fragmentos son funcionalmente idénticos:
Primer fragmento:
try:
x = request.POST['sth']
except KeyError:
x = None
Segundo fragmento:
x = request.POST.get('sth')
Estos dos fragmentos son funcionalmente idénticos:
Primer fragmento:
try:
x = request.POST['sth']
except KeyError:
x = -1
Segundo fragmento:
x = request.POST.get('sth', -1)
Estos dos fragmentos son funcionalmente idénticos:
Primer fragmento:
if 'sth' in request.POST:
x = request.POST['sth']
else:
x = -1
Segundo fragmento:
x = request.POST.get('sth', -1)