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

Исключение BuildError

Исключение BuildError наследуется от класса RoutingException и вызывается, когда Flask не может создать URL-адрес для заданного имени конечной точки. Это может произойти из-за опечатки в имени функции, отсутствия обязательных параметров или неверного типа переданных значений.

Синтаксис

from werkzeug.routing import BuildError BuildError(message, endpoint=None, values=None)

Пример

Давайте рассмотрим ситуацию, когда имя конечной точки указано с ошибкой. В этом случае Flask выбросит исключение BuildError:

from flask import Flask, url_for from werkzeug.routing import BuildError app = Flask(__name__) @app.route('/') def index(): return 'hello' with app.test_request_context(): try: url_for('indx') except BuildError as e: res = str(e) print(res)

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

"Could not build url for endpoint 'indx'. Did you mean 'index' instead?"

Пример

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

from flask import Flask, url_for from werkzeug.routing import BuildError app = Flask(__name__) @app.route('/user/<name>') def user(name): return name with app.test_request_context(): try: url_for('user') except BuildError as e: res = str(e) print(res)

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

"Could not build url for endpoint 'user'. Did you forget to specify values ['name']?"

Пример

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

from flask import Flask, url_for from werkzeug.routing import BuildError app = Flask(__name__) @app.route('/article/<int:id>') def article(id): return str(id) with app.test_request_context(): try: url_for('article', id='abcde') except BuildError as e: res = 'URL build failed' print(res)

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

"URL build failed"

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

  • класс HTTPException,
    который является базовым для всех HTTP-исключений
  • исключение RoutingException,
    от которого наследуется BuildError
  • исключение NotFound,
    которое возникает при отсутствии запрошенного URL
  • исключение MethodNotAllowed,
    которое возникает при недопустимом HTTP-методе
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить