gpt4 book ai didi

python - 如何获取 Django 中的所有请求 header ?

转载 作者:IT老高 更新时间:2023-10-28 21:09:30 24 4
gpt4 key购买 nike

我需要获取所有 Django 请求 header 。根据我的阅读,Django 只是将所有内容连同许多其他数据一起转储到 request.META 变量中。获取所有客户端发送到我的 Django 应用程序的 header 的最佳方法是什么?

我将使用这些来构建 httplib 请求。

最佳答案

根据documentation request.META 是“包含所有可用 HTTP header 的标准 Python 字典”。如果你想获得 all 标题,你可以简单地遍历字典。

执行此操作的代码的哪一部分取决于您的确切要求。任何可以访问 request 的地方都应该这样做。

更新

I need to access it in a Middleware class but when i iterate over it, I get a lot of values apart from HTTP headers.

来自文档:

With the exception of CONTENT_LENGTH and CONTENT_TYPE, as given above, any HTTP headers in the request are converted to META keys by converting all characters to uppercase, replacing any hyphens with underscores and adding an HTTP_ prefix to the name.

(已添加重点)

要单独获取 HTTP header ,只需按以 HTTP_ 为前缀的键进行过滤。

更新 2

could you show me how I could build a dictionary of headers by filtering out all the keys from the request.META variable which begin with a HTTP_ and strip out the leading HTTP_ part.

当然。这是一种方法。

import re
regex = re.compile('^HTTP_')
dict((regex.sub('', header), value) for (header, value)
in request.META.items() if header.startswith('HTTP_'))

关于python - 如何获取 Django 中的所有请求 header ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3889769/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com