What is the difference between
request.POST.get('sth')
and
request.POST['sth']
Did not find the similar question, both work the same for me, suppose I can use them separately but maybe I am wrong, that is why I am asking. Any ideas?
request.POST['sth']
will raise a KeyError
exception if 'sth'
is not in request.POST
.
request.POST.get('sth')
will return None
if 'sth'
is not in request.POST
.
Additionally, .get
allows you to provide an additional parameter of a default value which is returned if the key is not in the dictionary. For example, request.POST.get('sth', 'mydefaultvalue')
This is the behavior of any python dictionary and is not specific to request.POST
.
First snippet:
try:
x = request.POST['sth']
except KeyError:
x = None
Second snippet:
x = request.POST.get('sth')
First snippet:
try:
x = request.POST['sth']
except KeyError:
x = -1
Second snippet:
x = request.POST.get('sth', -1)
First snippet:
if 'sth' in request.POST:
x = request.POST['sth']
else:
x = -1
Second snippet:
x = request.POST.get('sth', -1)
Request.POST Example
req.POST['name_your_desired_field']
This will throw a KeyError exception if 'name_your_desired_field' is not in req.POST.
request.POST.get('name_your_desired_field')
This will return None if 'name_your_desired_field' is not in req.POST.
Although, .get allows you to provide an additional parameter of a default value which is returned if the key is not in the dictionary. For example,
req.POST.get('name_your_desired_field', 'your_default_value')
This is the behavior of any python dictionary and is not specific to req.POST
Request.GET Example
request.GET.get('name_your_desired_field')
This will return None if 'name_your_desired_field' is not in req.GET.
Allthough, .get allows you to provide an additional parameter of a default value which is returned if the key is not in the dictionary. For example,
req.GET.get('name_your_desired_field', 'your_default_value')
This is the behavior of any python dictionary and is not specific to req.GET
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With