django - getlist - request.POST.get(''sth'') versus request.POST[''sth'']-¿diferencia?
request get template django (2)
La principal diferencia entre el acceso a diccionarios normales y el acceso a él con .get () es que
Con el uso de algo como request.POST[''sth'']
surgirá un error clave si el ket ''sth'' no existe. Pero el uso de los métodos de método get () también le proporcionará un mejor manejo de errores
request.POST.get(''sth'')
devolverá ninguno es la clave ''sth no existe'' y también al dar el segundo parámetro a get () regresará con él como un valor predeterminado.
data = request.POST.get(''sth'',''my_default_value'')
si la ''sth'' clave no existe, el valor en los datos será my_default_value
. Esa es la ventaja de usar el método get () sobre el acceso a diccionarios normales.
Cuál es la diferencia entre
request.POST.get(''sth'')
y
request.POST[''sth'']
No encontré la pregunta similar, ambas funcionan igual para mí, supongo que puedo usarlas por separado, pero tal vez estoy equivocado, es por eso que estoy preguntando. ¿Algunas ideas?
request.POST[''sth'']
generará una excepción KeyError
si ''sth''
no está en request.POST
.
request.POST.get(''sth'')
devolverá None
si ''sth''
no está en request.POST
.
Además, .get
permite 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)