Исключение UnavailableForLegalReasons
Исключение UnavailableForLegalReasons относится к классу HTTP-исключений Flask и соответствует статус-коду 451. Оно применяется, когда сервер не может предоставить запрошенный ресурс по юридическим причинам, например, из-за судебного запрета или требований законодательства. При вызове этого исключения Flask автоматически формирует ответ с соответствующим кодом состояния и описанием. Исключение принимает необязательные параметры description и response, которые позволяют переопределить стандартное сообщение и объект ответа.
Синтаксис
from werkzeug.exceptions import UnavailableForLegalReasons
raise UnavailableForLegalReasons(description=None, response=None)
Пример
Давайте вызовем исключение UnavailableForLegalReasons в обработчике маршрута:
from flask import Flask
from werkzeug.exceptions import UnavailableForLegalReasons
app = Flask(__name__)
@app.route('/legal')
def legal():
raise UnavailableForLegalReasons()
Результат выполнения кода при запросе к адресу /legal:
451 Unavailable For Legal Reasons
Пример
Давайте передадим собственное описание ошибки через параметр description:
from flask import Flask
from werkzeug.exceptions import UnavailableForLegalReasons
app = Flask(__name__)
@app.route('/legal')
def legal():
raise UnavailableForLegalReasons(description='Resource blocked by court order')
Результат выполнения кода при запросе к адресу /legal:
Resource blocked by court order
Пример
Давайте перехватим исключение UnavailableForLegalReasons и вернём собственный ответ:
from flask import Flask
from werkzeug.exceptions import UnavailableForLegalReasons
app = Flask(__name__)
@app.errorhandler(UnavailableForLegalReasons)
def handle_legal(e):
return 'Access denied for legal reasons', 451
@app.route('/legal')
def legal():
raise UnavailableForLegalReasons()
Результат выполнения кода при запросе к адресу /legal:
Access denied for legal reasons
Смотрите также
-
класс
HTTPException,
базовый класс для всех HTTP-исключений Flask -
метод
get_response,
который формирует объект ответа из исключения -
атрибут
code,
который хранит код состояния HTTP -
атрибут
description,
который содержит описание ошибки