Исключение NotAcceptable
Исключение NotAcceptable относится к семейству HTTP-исключений
Flask и соответствует коду состояния 406. Оно выбрасывается,
когда клиент в заголовке Accept указал форматы, которые
сервер не может вернуть. При выбрасывании исключения можно
передать описание проблемы и дополнительные заголовки ответа.
Синтаксис
from flask import abort
abort(406)
Также исключение можно импортировать напрямую и выбрасывать с указанием описания:
from werkzeug.exceptions import NotAcceptable
raise NotAcceptable(description='Unsupported media type requested')
Пример
Давайте создадим приложение, которое проверяет заголовок
Accept и выбрасывает исключение, если клиент запрашивает
неподдерживаемый формат:
from flask import Flask, abort, request
app = Flask(__name__)
@app.route('/')
def index():
accept = request.headers.get('Accept', '')
if 'application/json' not in accept:
abort(406, description='Only JSON is supported')
return '{"status": "ok"}'
Результат выполнения кода при запросе с заголовком
Accept: text/html:
406 Not Acceptable
Пример
Давайте выбросим исключение NotAcceptable напрямую
и добавим собственный заголовок ответа:
from flask import Flask
from werkzeug.exceptions import NotAcceptable
app = Flask(__name__)
@app.route('/data')
def data():
exc = NotAcceptable(description='No suitable representation')
exc.headers = {'X-Reason': 'unsupported-accept'}
raise exc
Результат выполнения кода для адреса /data:
406 Not Acceptable
Смотрите также
-
класс
HTTPException,
базовый класс всех HTTP-исключений Flask -
исключение
UnsupportedMediaType,
которое возвращает код 415 -
атрибут
code,
который хранит код состояния исключения -
атрибут
description,
который содержит описание ошибки