Функция abort
Функция abort применяется внутри функции-обработчика
и немедленно прерывает выполнение запроса, возвращая
клиенту HTTP-ошибку. Первым параметром передаётся
код ошибки (например, 404, 403, 500).
Вторым необязательным параметром можно передать
описание ошибки. Функция не возвращает значение -
она выбрасывает исключение, которое Flask перехватывает
и формирует стандартный ответ об ошибке.
Синтаксис
from flask import abort
abort(code, [description])
Пример
Давайте вернём ошибку 404, если пользователь
запросил несуществующий ресурс:
from flask import Flask, abort
app = Flask(__name__)
@app.route('/user/<name>')
def user(name):
if name != 'admin':
abort(404)
return 'hello'
Результат выполнения кода для адреса /user/guest:
404 Not Found
Пример
Давайте передадим собственное описание ошибки вторым параметром:
from flask import Flask, abort
app = Flask(__name__)
@app.route('/article/<int:id>')
def article(id):
if id > 100:
abort(404, 'article not found')
return 'article'
Результат выполнения кода для адреса /article/200:
"article not found"
Пример
Давайте вернём ошибку 403 при отсутствии
прав доступа:
from flask import Flask, abort, request
app = Flask(__name__)
@app.route('/admin')
def admin():
token = request.args.get('token')
if token != 'abcde':
abort(403)
return 'hello'
Результат выполнения кода для адреса /admin:
403 Forbidden