accessing request headers on django/python

35,366

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

Share:
35,366
sumit
Author by

sumit

I am full stack developer

Updated on July 09, 2022

Comments

  • sumit
    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?