Класс Response
Класс Response описывает HTTP-ответ,
который Flask отправляет клиенту. Объект этого класса
хранит тело ответа, статус-код, заголовки, MIME-тип
и другие служебные данные. Первым параметром
в конструктор передаётся тело ответа: строка, байты
или итерируемый объект. Вторым параметром идёт
статус-код, третьим - словарь заголовков.
Функции-обработчики могут возвращать как обычные
строки, так и готовые объекты Response.
Синтаксис
from flask import Response
Response(response, status=None, headers=None, mimetype=None, content_type=None)
Пример
Давайте вернём из обработчика объект Response
с явным статус-кодом и заголовком:
from flask import Flask, Response
app = Flask(__name__)
@app.route('/')
def index():
res = Response('hello', status=201, headers={'X-Test': 'abcde'})
return res
В результате клиент получит тело "hello",
статус 201 и заголовок X-Test: abcde.
Пример
Давайте изменим тело ответа уже после создания
объекта через метод set_data:
from flask import Flask, Response
app = Flask(__name__)
@app.route('/')
def index():
res = Response('abcde')
res.set_data('user')
return res
Результат выполнения кода:
user
Пример
Давайте прочитаем тело ответа через атрибут data
и вернём его длину:
from flask import Flask, Response
app = Flask(__name__)
@app.route('/')
def index():
res = Response('hello')
return str(len(res.data))
Результат выполнения кода:
5
Пример
Давайте установим куку через метод set_cookie
и вернём ответ клиенту:
from flask import Flask, Response
app = Flask(__name__)
@app.route('/')
def index():
res = Response('abcde')
res.set_cookie('user', 'hello')
return res
В результате ответ будет содержать заголовок
Set-Cookie: user=hello.
Смотрите также
-
метод
set_data,
который заменяет тело ответа -
метод
set_cookie,
который устанавливает куку в ответе -
атрибут
status_code,
который хранит статус-код ответа -
атрибут
data,
который хранит тело ответа в байтах