Класс HTTPException
Класс HTTPException наследуется от класса Exception
и является базой для всех HTTP-ошибок во Flask. При возникновении
исключения этого типа Flask автоматически формирует ответ клиенту
с соответствующим кодом состояния, описанием и заголовками.
Первым параметром в конструктор передаётся описание ошибки,
а вторым - объект ответа response, если его нужно переопределить.
Синтаксис
class HTTPException(description=None, response=None)
Пример
Давайте создадим собственное исключение на основе
HTTPException и вызовем его в обработчике:
from flask import Flask, HTTPException
app = Flask(__name__)
class MyError(HTTPException):
code = 400
description = 'abcde'
@app.route('/')
def index():
raise MyError()
if __name__ == '__main__':
app.run()
Результат выполнения кода для адреса /:
abcde
Пример
Давайте перехватим исключение HTTPException
и вернём клиенту собственный ответ:
from flask import Flask, HTTPException
app = Flask(__name__)
@app.errorhandler(HTTPException)
def handle_error(error):
return 'user: ' + str(error.code), error.code
@app.route('/')
def index():
raise HTTPException()
if __name__ == '__main__':
app.run()
Результат выполнения кода для адреса /:
user: 500
Пример
Давайте получим описание и код ошибки через атрибуты
description и code:
from flask import Flask, HTTPException
app = Flask(__name__)
@app.route('/')
def index():
error = HTTPException(description='hello')
return error.description
if __name__ == '__main__':
app.run()
Результат выполнения кода для адреса /:
hello
Смотрите также
-
класс
HTTPException,
который является базой для всех HTTP-исключений -
метод
get_response,
который возвращает объект ответа для исключения -
метод
get_description,
который возвращает описание ошибки -
атрибут
code,
который хранит код состояния HTTP