РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
390 of 643 menu

Исключение 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,
    который содержит описание ошибки
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить