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

Метод errorhandler

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

Синтаксис

@bp.errorhandler(code)

где code - код ошибки, например 404 или 500. Также можно передать класс исключения.

Пример

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

from flask import Flask, Blueprint app = Flask(__name__) bp = Blueprint('bp', __name__) @bp.errorhandler(404) def not_found(error): return 'page not found' @app.route('/') def index(): return 'hello' app.register_blueprint(bp)

Результат выполнения кода для адреса, не входящего в blueprint:

page not found

Пример

Давайте повесим blueprint на префикс /user и зарегистрируем обработчик ошибки 500:

from flask import Flask, Blueprint app = Flask(__name__) bp = Blueprint('bp', __name__, url_prefix='/user') @bp.errorhandler(500) def server_error(error): return 'server error in user section' @bp.route('/') def user_index(): return 'user page' app.register_blueprint(bp)

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

server error in user section

Пример

Давайте передадим в errorhandler класс исключения ValueError и обработаем его:

from flask import Flask, Blueprint app = Flask(__name__) bp = Blueprint('bp', __name__, url_prefix='/api') @bp.errorhandler(ValueError) def handle_value_error(error): return 'invalid value' @bp.route('/') def api_index(): raise ValueError('bad input') app.register_blueprint(bp)

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

invalid value

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

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