Исключение PreconditionFailed
Класс PreconditionFailed наследуется от базового исключения
HTTPException и соответствует HTTP-статусу
412 Precondition Failed. Он применяется, когда клиент
передал в запросе заголовки предварительных условий
(например, If-Match, If-None-Match,
If-Modified-Since или If-Unmodified-Since),
но эти условия не были выполнены на стороне сервера.
Класс можно возбуждать вручную или возвращать как ответ.
Синтаксис
from flask import Flask
app = Flask(__name__)
raise PreconditionFailed(description=None)
Пример
Давайте возбудим исключение PreconditionFailed в
обработчике маршрута:
from flask import Flask
from werkzeug.exceptions import PreconditionFailed
app = Flask(__name__)
@app.route('/')
def index():
raise PreconditionFailed('precondition failed')
Результат выполнения кода:
412 Precondition Failed
Пример
Давайте перехватим исключение PreconditionFailed
и вернём собственный ответ с описанием:
from flask import Flask
from werkzeug.exceptions import PreconditionFailed
app = Flask(__name__)
@app.errorhandler(PreconditionFailed)
def handle_precondition_failed(e):
return 'condition not matched', 412
Результат выполнения кода:
"condition not matched"
Пример
Давайте используем атрибут code и
description исключения:
from werkzeug.exceptions import PreconditionFailed
e = PreconditionFailed('precondition failed')
res_code = e.code
res_desc = e.description
Результат выполнения кода:
412
'precondition failed'
Смотрите также
-
класс
HTTPException,
базовый класс всех HTTP-исключений Flask -
атрибут
code,
который хранит HTTP-статус исключения -
атрибут
description,
который хранит описание ошибки -
исключение
PreconditionRequired,
которое требует обязательных предварительных условий