Згідно з документацією request.META
, це "стандартний словник Python, що містить усі доступні заголовки HTTP". Якщо ви хочете отримати всі заголовки, ви можете просто перебрати його через словник.
Яка частина вашого коду для цього залежить від вашої точної вимоги. Будь-який, хто має доступ, request
повинен робити.
Оновлення
Мені потрібно отримати доступ до класу Middleware, але коли я перебираю його, я отримую багато значень, крім заголовків 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_'))