request.POST['sth']
wird eine KeyError
Ausnahme auslösen, wenn 'sth'
nicht in request.POST
.
request.POST.get('sth')
wird zurückkehren, None
wenn 'sth'
nicht in request.POST
.
Darüber hinaus .get
können Sie einen zusätzlichen Parameter für einen Standardwert angeben, der zurückgegeben wird, wenn sich der Schlüssel nicht im Wörterbuch befindet. Zum Beispiel,request.POST.get('sth', 'mydefaultvalue')
Dies ist das Verhalten eines Python-Wörterbuchs und nicht spezifisch für request.POST
.
Diese beiden Schnipsel sind funktional identisch:
Erster Ausschnitt:
try:
x = request.POST['sth']
except KeyError:
x = None
Zweiter Ausschnitt:
x = request.POST.get('sth')
Diese beiden Schnipsel sind funktional identisch:
Erster Ausschnitt:
try:
x = request.POST['sth']
except KeyError:
x = -1
Zweiter Ausschnitt:
x = request.POST.get('sth', -1)
Diese beiden Schnipsel sind funktional identisch:
Erster Ausschnitt:
if 'sth' in request.POST:
x = request.POST['sth']
else:
x = -1
Zweiter Ausschnitt:
x = request.POST.get('sth', -1)
Der Hauptunterschied zwischen dem Zugriff auf normale Wörterbücher und dem Zugriff mit .get () besteht darin, dass
Bei der Verwendung von etwas wie
request.POST['sth']
wird ein Schlüsselfehler auftreten, wenn der Ket 'etw' nicht existiert. Die Verwendung von get () -Methodenwörterbüchern bietet Ihnen jedoch auch eine bessere Fehlerbehandlungrequest.POST.get('sth')
wird keine zurückgeben ist der Schlüssel 'etw existiert nicht' und auch durch Angabe des zweiten Parameters wird get () als Standardwert zurückgegeben.
data = request.POST.get('sth','my_default_value')
Wenn der Schlüssel 'etw' nicht vorhanden ist, ist der Wert in den Daten
my_default_value
. Dies ist der Vorteil der Verwendung der Methode get () gegenüber dem normalen Zugriff auf Wörterbücher.quelle