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

Метод register_error_handler

Метод register_error_handler применяется к приложению Flask и регистрирует функцию, которая будет вызвана при возникновении определённой ошибки. Первым параметром передаётся код ошибки (например, 404 или 500) либо класс исключения (например, Exception). Вторым параметром передаётся функция-обработчик, принимающая объект ошибки и возвращающая ответ. В отличие от декоратора errorhandler, этот метод позволяет зарегистрировать обработчик без применения декоратора, что удобно при динамической регистрации или при работе с Blueprint.

Синтаксис

app.register_error_handler(code_or_exception, handler)

Пример

Давайте зарегистрируем обработчик для ошибки 404:

from flask import Flask, render_template app = Flask(__name__) def not_found(error): return render_template('404.html'), 404 app.register_error_handler(404, not_found) @app.route('/') def index(): return 'hello'

Шаблон для страницы ошибки:

<+jinja+>

page not found

<-jinja+>

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

<+html+>

page not found

<-html+>

Пример

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

from flask import Flask app = Flask(__name__) def handle_error(error): return 'error occurred', 500 app.register_error_handler(Exception, handle_error) @app.route('/') def index(): raise Exception('something went wrong')

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

<+html+> error occurred <-html+>

Пример

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

from flask import Flask app = Flask(__name__) def not_found(error): return 'not found', 404 def server_error(error): return 'server error', 500 app.register_error_handler(404, not_found) app.register_error_handler(500, server_error) @app.route('/') def index(): return 'hello'

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

<+html+> not found <-html+>

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

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