Метод get_description
Метод get_description применяется к экземпляру класса HTTPException
и возвращает строку с описанием ошибки. Это описание
используется Flask при формировании ответа клиенту.
Если описание не было задано явно, метод возвращает
стандартное описание, соответствующее коду ошибки.
Синтаксис
exception.get_description(environ=None, scope=None)
Параметр environ - это WSGI-окружение,
а scope - ASGI-область. Оба параметра
необязательны и передаются в метод для совместимости
с обработчиками запросов.
Пример
Давайте создадим исключение и получим его описание:
from flask import Flask
from werkzeug.exceptions import NotFound
app = Flask(__name__)
exc = NotFound()
res = exc.get_description()
print(res)
Результат выполнения кода:
"The requested URL was not found on the server. If you entered the URL manually please check your spelling and try again."
Пример
Давайте зададим собственное описание и получим его:
from flask import Flask
from werkzeug.exceptions import BadRequest
app = Flask(__name__)
exc = BadRequest(description='Invalid request data')
res = exc.get_description()
print(res)
Результат выполнения кода:
"Invalid request data"
Пример
Давайте используем метод внутри обработчика ошибок:
from flask import Flask, jsonify
from werkzeug.exceptions import HTTPException
app = Flask(__name__)
@app.errorhandler(HTTPException)
def handle_exception(exc):
res = {
'code': exc.code,
'name': exc.name,
'description': exc.get_description()
}
return jsonify(res), exc.code
Результат выполнения кода для несуществующего адреса:
{
"code": 404,
"name": "Not Found",
"description": "The requested URL was not found on the server. If you entered the URL manually please check your spelling and try again."
}
Смотрите также
-
класс
HTTPException,
который является базовым классом для HTTP-исключений -
атрибут
description,
который хранит описание исключения -
атрибут
code,
который хранит код состояния HTTP -
метод
get_response,
который возвращает объект ответа для исключения