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

Исключение UnprocessableEntity

Исключение UnprocessableEntity относится к классу HTTP-исключений Flask и соответствует статус-коду 422. Оно применяется, когда сервер понимает формат запроса, но содержащиеся в нём данные семантически некорректны. Например, при валидации формы или JSON-тела запроса. При возникновении этого исключения Flask возвращает клиенту ответ с кодом 422. Класс наследуется от HTTPException и принимает необязательный параметр description, который попадает в тело ответа.

Синтаксис

from werkzeug.exceptions import UnprocessableEntity raise UnprocessableEntity(description='...')

Пример

Давайте выбросим исключение UnprocessableEntity при некорректных данных формы:

from flask import Flask, request from werkzeug.exceptions import UnprocessableEntity app = Flask(__name__) @app.route('/user', methods=['POST']) def user(): name = request.form.get('name') if not name: raise UnprocessableEntity('name is required') return 'ok'

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

422 Unprocessable Entity name is required

Пример

Давайте перехватим исключение UnprocessableEntity и вернём собственный JSON-ответ:

from flask import Flask, jsonify, request from werkzeug.exceptions import UnprocessableEntity app = Flask(__name__) @app.errorhandler(UnprocessableEntity) def handle_unprocessable(error): res = {'error': error.description} return jsonify(res), 422 @app.route('/user', methods=['POST']) def user(): data = request.get_json() if 'name' not in data: raise UnprocessableEntity('name is required') return 'ok'

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

{"error": "name is required"}

Пример

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

from werkzeug.exceptions import UnprocessableEntity exc = UnprocessableEntity('bad data') print(exc.code) print(exc.name) print(exc.description)

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

422 'Unprocessable Entity' 'bad data'

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

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