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

Атрибут status_code

Атрибут status_code принадлежит классу HTTPException и хранит целочисленный HTTP-код состояния, который сервер отправит клиенту вместе с сообщением об ошибке. Значение задаётся при создании исключения первым позиционным или именованным параметром status_code. Атрибут доступен для чтения у экземпляра исключения и позволяет программно узнать код ошибки.

Синтаксис

from fastapi import HTTPException exc = HTTPException(status_code=404, detail='...') exc.status_code

Пример

Давайте выбросим исключение с кодом 404 и прочитаем атрибут status_code внутри обработчика:

from fastapi import FastAPI, HTTPException app = FastAPI() @app.get('/user/{name}') def user(name: str): if name != 'abcde': exc = HTTPException(status_code=404, detail='user not found') return {'code': exc.status_code} return {'name': name}

Результат выполнения кода для адреса /user/user:

{"code": 404}

Пример

Давайте создадим исключение с кодом 403 и выбросим его через raise, чтобы FastAPI вернул клиенту ошибку:

from fastapi import FastAPI, HTTPException app = FastAPI() @app.get('/article/{name}') def article(name: str): if name != 'article': raise HTTPException(status_code=403, detail='forbidden') return {'name': name}

Результат выполнения кода для адреса /article/hello:

{"detail": "forbidden"}

Пример

Давайте перехватим исключение и сравним значение атрибута status_code с константой:

from fastapi import FastAPI, HTTPException app = FastAPI() @app.get('/check') def check(): try: raise HTTPException(status_code=400, detail='bad request') except HTTPException as exc: return {'is_bad': exc.status_code == 400}

Результат выполнения кода:

{"is_bad": true}

Смотрите также

  • класс HTTPException,
    который выбрасывает HTTP-ошибку с кодом состояния
  • атрибут detail,
    который хранит текст сообщения об ошибке
  • атрибут headers,
    который задаёт дополнительные HTTP-заголовки ответа
  • класс RequestValidationError,
    который возникает при ошибке валидации данных запроса
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить