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

Событие after_request

Событие after_request применяется к приложению Bottle и вызывает указанную функцию после того, как маршрут обработал запрос, но до того, как ответ будет отправлен клиенту. Событие удобно использовать для логирования, добавления заголовков, замера времени выполнения запроса и других задач, которые должны выполняться для каждого запроса. Функция-обработчик не принимает аргументов.

Синтаксис

@app.after_request def callback(): pass

Пример

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

from bottle import Bottle app = Bottle() @app.after_request def after(): print('request processed') @app.route('/') def index(): return 'hello'

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

hello

При этом в консоль будет выведено:

request processed

Пример

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

from bottle import Bottle, response app = Bottle() @app.after_request def add_header(): response.set_header('X-App', 'bottle') @app.route('/') def index(): return 'hello'

Теперь каждый ответ будет содержать заголовок X-App со значением bottle. Результат выполнения кода для адреса /:

hello

Пример

Давайте измерим время выполнения запроса с помощью события after_request:

import time from bottle import Bottle, request app = Bottle() @app.before_request def start_timer(): request.start_time = time.time() @app.after_request def log_time(): elapsed = time.time() - request.start_time print('elapsed:', elapsed) @app.route('/') def index(): return 'hello'

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

elapsed: 0.00012

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

  • событие before_request,
    которое вызывается перед обработкой запроса
  • метод hook,
    который регистрирует обработчик события
  • метод add_hook,
    который добавляет функцию к событию
  • класс Bottle,
    который представляет приложение Bottle
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить