Атрибут debug
Атрибут debug применяется к экземпляру класса
FastAPI и управляет режимом отладки.
Значением атрибута является булево значение:
True включает отладку, False выключает её.
По умолчанию атрибут равен False.
Когда отладка включена, при возникновении
необработанного исключения FastAPI возвращает
подробную трассировку стека в ответе.
Атрибут можно задать двумя способами: передать параметр
debug в конструктор приложения или
присвоить значение атрибуту после создания экземпляра.
Синтаксис
app = FastAPI(debug=True)
Или через прямое обращение к атрибуту:
app = FastAPI()
app.debug = True
Пример
Давайте создадим приложение с включённым режимом отладки и маршрутом, который вызывает исключение:
from fastapi import FastAPI
app = FastAPI(debug=True)
@app.get('/')
def index():
res = 1 / 0
return {'res': res}
При обращении к адресу / FastAPI вернёт
подробную трассировку ошибки вместо стандартного
сообщения Internal Server Error:
Internal Server Error
Трассировка будет содержать информацию о типе исключения
ZeroDivisionError и строку кода, в которой
произошла ошибка.
Пример
Давайте выключим режим отладки и посмотрим, как изменится ответ при той же ошибке:
from fastapi import FastAPI
app = FastAPI(debug=False)
@app.get('/')
def index():
res = 1 / 0
return {'res': res}
Теперь при обращении к адресу / FastAPI вернёт
краткое сообщение без деталей:
Internal Server Error
В этом режиме подробности ошибки не раскрываются, что безопаснее для production-окружения.
Пример
Давайте изменим значение атрибута debug
уже после создания приложения:
from fastapi import FastAPI
app = FastAPI()
app.debug = True
@app.get('/')
def index():
return {'debug': app.debug}
Результат выполнения кода для адреса /:
{"debug": true}
Смотрите также
-
класс
FastAPI,
который создаёт приложение FastAPI -
атрибут
title,
который задаёт название приложения -
атрибут
version,
который задаёт версию приложения -
метод
exception_handler,
который регистрирует обработчик исключений