Атрибут headers
Атрибут headers применяется к объекту ответа
Response и возвращает специальный объект,
содержащий HTTP-заголовки ответа. Этот объект
ведёт себя как словарь: поддерживает чтение,
установку, изменение и удаление заголовков по
имени. Имена заголовков нечувствительны к регистру.
Атрибут headers особенно полезен, когда
нужно добавить собственные заголовки к ответу:
например, Content-Type, Cache-Control,
X-Custom-Header и другие. Обращаться к
заголовкам можно как через квадратные скобки,
так и через метод get.
Синтаксис
response.headers
response.headers['Header-Name']
response.headers['Header-Name'] = 'value'
response.headers.get('Header-Name')
Пример
Давайте создадим ответ и прочитаем его
заголовок Content-Type, который Flask
устанавливает по умолчанию:
from flask import Flask, make_response
app = Flask(__name__)
@app.route('/')
def index():
res = make_response('hello')
return res.headers['Content-Type']
Результат выполнения кода:
text/html; charset=utf-8
Пример
Давайте добавим собственный заголовок к ответу
через атрибут headers:
from flask import Flask, make_response
app = Flask(__name__)
@app.route('/')
def index():
res = make_response('hello')
res.headers['X-Custom-Header'] = 'abcde'
return res
Теперь в ответе появится заголовок
X-Custom-Header со значением 'abcde'.
Пример
Давайте изменим сразу несколько заголовков
и проверим их наличие через метод get:
from flask import Flask, make_response
app = Flask(__name__)
@app.route('/')
def index():
res = make_response('article')
res.headers['Cache-Control'] = 'no-cache'
res.headers['X-User'] = 'user'
cache = res.headers.get('Cache-Control')
missing = res.headers.get('X-Missing')
return f'{cache} | {missing}'
Результат выполнения кода:
no-cache | None
Пример
Давайте удалим заголовок из ответа через
оператор del:
from flask import Flask, make_response
app = Flask(__name__)
@app.route('/')
def index():
res = make_response('hello')
res.headers['X-Temp'] = 'abcde'
del res.headers['X-Temp']
return str(res.headers.get('X-Temp'))
Результат выполнения кода:
None
Смотрите также
-
класс
Response,
который представляет HTTP-ответ -
атрибут
status_code,
который хранит код состояния ответа -
атрибут
content_type,
который задаёт MIME-тип ответа -
метод
set_cookie,
который устанавливает cookie в ответе