访问django / python上的请求标头

时间:2012-05-16 06:45:25

标签: python django http header request

我需要使用sencha和django创建一个安全的restFUL api。我对python很新。到目前为止,我能够使用基本身份验证从sencha向服务器发送请求,如下所示

 new Ext.data.Store({
   proxy: {
     type: "ajax",
      headers: {
       "Authorization": "Basic asdjksdfsksf="
    }
   }
 })  

在php / apache中,我可以使用下面的代码轻松访问这些标题

$headers = apache_request_headers();
print_r($headers);

如何在python中执行此操作?

4 个答案:

答案 0 :(得分:34)

您可以使用request.META(一个词典)在视图中访问它们。

如果您需要授权标头,则可以执行request.META['HTTP_AUTHORIZATION']

如果您是从头开始创建一个restful API,您可能需要查看使用tastypie

答案 1 :(得分:1)

您可以使用

request.META['HTTP_AUTHORIZATION']

有时

request.META['Authorization']

可以提供帮助。

答案 2 :(得分:0)

自django 2.2起HttpRequest.headers被添加以允许简单地访问请求的标头。因此,现在您还可以使用get()上的request.headers函数获得身份验证标头

request.headers.get('Authorization')

这将为您提供价值代币的价值。

Bearer eyJ0eYourToken...

https://docs.djangoproject.com/en/2.2/ref/request-response/#django.http.HttpRequest.headers

答案 3 :(得分:0)

HttpRequest.headers

Django 2.2的新功能。

 if 'Authorization' in request.headers: # Authorization header exists
      #do something here
      pass
 
 else: # Authorization header not exists
     #do something here
     pass 

另请参阅Django official Doc