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

Событие request_started

Событие request_started относится к сигналам Flask и посылается в самом начале обработки запроса, когда Flask уже создал контекст запроса, но ещё не начал вызывать функцию-обработчик. Сигнал применяется для подключения функций-подписчиков через метод connect. В качестве параметра подписчик получает объект sender, соответствующий приложению Flask. Событие удобно использовать для логирования, замера времени обработки или инициализации ресурсов перед выполнением запроса.

Синтаксис

from flask import request_started request_started.connect(function, sender)

Пример

Давайте подключим подписчика к событию request_started и выведем сообщение в момент старта запроса:

from flask import Flask, request_started app = Flask(__name__) def on_request_started(sender, **extra): print('request started') request_started.connect(on_request_started, app) @app.route('/') def index(): return 'hello'

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

"request started"

Пример

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

import time from flask import Flask, request_started app = Flask(__name__) start_time = {} def on_request_started(sender, **extra): start_time['value'] = time.time() request_started.connect(on_request_started, app) @app.route('/') def index(): elapsed = time.time() - start_time['value'] return str(elapsed)

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

0.000123

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

  • класс Signal,
    который представляет собой сигнал Flask
  • метод connect,
    который подключает подписчика к сигналу
  • событие request_finished,
    которое срабатывает после завершения обработки запроса
  • событие got_request_exception,
    которое срабатывает при возникновении исключения в запросе
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить