accessing request headers on django/python
Solution 1
You can access them within a view using request.META
, which is a dictionary.
If you wanted the Authorization header, you could do request.META['HTTP_AUTHORIZATION']
If you're creating a restful API from scratch, you might want to take a look at using tastypie.
Solution 2
You can use
request.META['HTTP_AUTHORIZATION']
and sometimes
request.META['Authorization']
can help.
Solution 3
As of django 2.2 HttpRequest.headers
were added to allow simple access to a request’s headers. So now you can also get authentication header using get()
function on request.headers
request.headers.get('Authorization')
This will give you value token value back.
Bearer eyJ0eYourToken...
https://docs.djangoproject.com/en/2.2/ref/request-response/#django.http.HttpRequest.headers
Comments
-
sumit almost 2 years
I need to create a secure restFUL api using sencha and django. I am fairly new to python. So far i am able to send request from sencha to server using basic authentication as below
new Ext.data.Store({ proxy: { type: "ajax", headers: { "Authorization": "Basic asdjksdfsksf=" } } })
In php/apache i can access those header with ease with the code below
$headers = apache_request_headers(); print_r($headers);
How to do this in python?