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

Метод teardown_request

Метод teardown_request применяется к приложению Flask и регистрирует функцию, которая выполняется после завершения обработки запроса. Функция вызывается даже в том случае, если во время обработки запроса произошло исключение. Первым параметром передаётся функция-обработчик. Она принимает один аргумент - исключение exception, которое возникло при обработке запроса, либо None, если ошибки не было.

Метод удобно использовать для освобождения ресурсов: закрытия соединений с базой данных, файлов, сброса кэша и другой очистки, которая должна произойти после каждого запроса.

Синтаксис

@app.teardown_request def teardown_func(exception): ...

Пример

Давайте зарегистрируем функцию, которая выводит сообщение после завершения запроса:

from flask import Flask app = Flask(__name__) @app.teardown_request def teardown(exception): print('request finished') @app.route('/') def index(): return 'hello'

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

"request finished"

Пример

Давайте обработаем исключение, возникшее во время запроса. Если ошибки не было, аргумент exception равен None:

from flask import Flask app = Flask(__name__) @app.teardown_request def teardown(exception): if exception is None: print('no errors') else: print('error:', exception) @app.route('/') def index(): return 1 / 0

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

"error: division by zero"

Пример

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

from flask import Flask app = Flask(__name__) db = {'connected': True} @app.teardown_request def close_db(exception): if db['connected']: db['connected'] = False print('db closed') @app.route('/') def index(): return 'hello'

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

"db closed"

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

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