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

Исключение Conflict

Исключение Conflict относится к классу HTTP-исключений Flask и соответствует статус-коду 409. Оно применяется, когда запрос не может быть выполнен из-за конфликта с текущим состоянием целевого ресурса, например при попытке создать объект, который уже существует. Первым параметром передаётся описание ошибки, вторым - необязательный объект ответа response.

Синтаксис

from werkzeug.exceptions import Conflict Conflict(description, response)

Пример

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

from flask import Flask from werkzeug.exceptions import Conflict app = Flask(__name__) users = ['user'] @app.route('/user/<name>') def add_user(name): if name in users: raise Conflict('user already exists') users.append(name) return 'created'

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

Conflict user already exists

Пример

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

from flask import Flask, jsonify from werkzeug.exceptions import Conflict app = Flask(__name__) @app.errorhandler(Conflict) def handle_conflict(error): res = jsonify({'error': error.description}) res.status_code = 409 return res @app.route('/user/<name>') def add_user(name): raise Conflict('user already exists')

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

{"error": "user already exists"}

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

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