240👍
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
.
These two snippets are functionally identical:
First snippet:
try:
x = request.POST['sth']
except KeyError:
x = None
Second snippet:
x = request.POST.get('sth')
These two snippets are functionally identical:
First snippet:
try:
x = request.POST['sth']
except KeyError:
x = -1
Second snippet:
x = request.POST.get('sth', -1)
These two snippets are functionally identical:
First snippet:
if 'sth' in request.POST:
x = request.POST['sth']
else:
x = -1
Second snippet:
x = request.POST.get('sth', -1)
2👍
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
- [Django]-How do you use the django-filter package with a list of parameters?
- [Django]-Retrieving parameters from a URL
- [Django]-Django admin default filter
0👍
The main difference between normal dictionaries access and accessing it with .get() is that
With
using something like
request.POST['sth']
will arise a key error is if the ket ‘sth’ does not exist.
But using get() method dictionaries will also provide you with better error handling
request.POST.get('sth')
will return none is the key ‘sth does not exist’
and also by giving the second parameter to get() will return with it as a default value.
data = request.POST.get('sth','my_default_value')
if ‘sth’ key does not exist the value in data will be my_default_value
.
That’s the advantage of using get() method over normal dictionaries access.
- [Django]-Django development server reload takes too long
- [Django]-"Too many values to unpack" Exception
- [Django]-How do I get the class of a object within a Django template?