Исключение BadRequest
Исключение BadRequest вызывается,
когда клиент отправил запрос, который сервер
не может обработать из-за ошибки на стороне
клиента: неверные параметры, некорректные
данные формы или неподдерживаемый формат.
При возбуждении исключения Flask автоматически
возвращает HTTP-ответ со статусом 400.
Первым параметром можно передать описание
ошибки, которое попадёт в тело ответа.
Синтаксис
from flask import Flask
from werkzeug.exceptions import BadRequest
raise BadRequest(description)
Пример
Давайте возбудим исключение при отсутствии
обязательного параметра user:
from flask import Flask, request
from werkzeug.exceptions import BadRequest
app = Flask(__name__)
@app.route('/login')
def login():
user = request.args.get('user')
if not user:
raise BadRequest('user is required')
return 'hello ' + user
Результат выполнения кода для адреса
/login:
400 Bad Request
user is required
Пример
Давайте перехватим исключение BadRequest
и вернём собственный ответ в формате JSON:
from flask import Flask, jsonify
from werkzeug.exceptions import BadRequest
app = Flask(__name__)
@app.errorhandler(BadRequest)
def handle_bad_request(e):
return jsonify({
'error': 'abcde',
'code': e.code
}), 400
@app.route('/user')
def user():
raise BadRequest('invalid user')
Результат выполнения кода для адреса
/user:
{
"error": "abcde",
"code": 400
}
Смотрите также
-
класс
HTTPException,
базовый класс всех исключений Flask -
атрибут
code,
который хранит HTTP-код ответа -
атрибут
description,
который хранит текст описания ошибки -
метод
get_response,
который возвращает ответ для исключения