РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
103 of 643 menu

Функция after_this_request

Функция after_this_request применяется внутри функции-обработчика запроса. Первым параметром передаётся функция, которая будет вызвана после того, как Flask сформирует ответ на текущий запрос. Эта функция принимает объект ответа response и должна вернуть его же (возможно, изменённым). Обработчик выполняется только для текущего запроса и не влияет на другие.

Синтаксис

after_this_request(func)

Пример

Давайте добавим заголовок к ответу после его формирования:

from flask import Flask, after_this_request app = Flask(__name__) @app.route('/') def index(): @after_this_request def add_header(response): response.headers['X-Custom'] = 'abcde' return response return 'hello'

При запросе к адресу / в ответе появится заголовок X-Custom со значением abcde, а тело ответа будет содержать строку:

hello

Пример

Давайте изменим тело ответа в обработчике after_this_request:

from flask import Flask, after_this_request app = Flask(__name__) @app.route('/user') def user(): @after_this_request def modify_response(response): response.set_data(response.get_data(as_text=True).upper()) return response return 'abcde'

Результат выполнения кода:

ABCDE

Пример

Давайте зарегистрируем несколько обработчиков и посмотрим порядок их вызова:

from flask import Flask, after_this_request app = Flask(__name__) @app.route('/order') def order(): @after_this_request def first(response): response.headers['X-First'] = '1' return response @after_this_request def second(response): response.headers['X-Second'] = '2' return response return 'article'

Оба заголовка X-First и X-Second будут добавлены к ответу. Тело ответа останется прежним:

article

Смотрите также

  • функцию make_response,
    которая создаёт объект ответа вручную
  • функцию jsonify,
    которая формирует JSON-ответ
  • функцию copy_current_request_context,
    которая копирует контекст текущего запроса
  • функцию stream_with_context,
    которая сохраняет контекст при потоковой передаче
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить