How can I get all the request headers in Django?

前端 未结 9 2494
误落风尘
误落风尘 2020-11-29 20:57

I need to get all the Django request headers. From what i\'ve read, Django simply dumps everything into the request.META variable along with a lot aof other dat

9条回答
  •  粉色の甜心
    2020-11-29 21:28

    Starting from Django 2.2, you can use request.headers to access the HTTP headers. From the documentation on HttpRequest.headers:

    A case insensitive, dict-like object that provides access to all HTTP-prefixed headers (plus Content-Length and Content-Type) from the request.

    The name of each header is stylized with title-casing (e.g. User-Agent) when it’s displayed. You can access headers case-insensitively:

    >>> request.headers
    {'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6', ...}
    
    >>> 'User-Agent' in request.headers
    True
    >>> 'user-agent' in request.headers
    True
    
    >>> request.headers['User-Agent']
    Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6)
    >>> request.headers['user-agent']
    Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6)
    
    >>> request.headers.get('User-Agent')
    Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6)
    >>> request.headers.get('user-agent')
    Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6)
    

    To get all headers, you can use request.headers.keys() or request.headers.items().

提交回复
热议问题