Согласно документации request.META
, это «стандартный словарь Python, содержащий все доступные заголовки HTTP». Если вы хотите получить все заголовки, вы можете просто просмотреть словарь.
Какая часть вашего кода это делать, зависит от ваших конкретных требований. Подойдет любое место, к которому есть доступ request
.
Обновить
Мне нужно получить к нему доступ в классе промежуточного программного обеспечения, но когда я повторяю его, я получаю много значений, кроме заголовков HTTP.
Из документации:
За исключением CONTENT_LENGTH
и CONTENT_TYPE
, как указано выше, любые HTTP
заголовки в запросе преобразуются в META
ключи путем преобразования всех символов в верхний регистр, замены дефисов символами подчеркивания и добавления HTTP_
префикса к имени .
(Курсив добавлен)
Чтобы получить только HTTP
заголовки, просто отфильтруйте их по ключам с префиксом HTTP_
.
Обновление 2
не могли бы вы показать мне, как я могу создать словарь заголовков, отфильтровав все ключи из переменной request.META, которые начинаются с HTTP_, и вычеркните ведущую часть HTTP_.
Конечно. Вот один из способов сделать это.
import re
regex = re.compile('^HTTP_')
dict((regex.sub('', header), value) for (header, value)
in request.META.items() if header.startswith('HTTP_'))