Перейти к содержанию

Отладка

Вы можете подключить отладчик в своем редакторе, например, в Visual Studio Code или PyCharm.

Вызов uvicorn

В вашем FastAPI приложении, импортируйте и вызовите uvicorn напрямую:

import uvicorn
from fastapi import FastAPI

app = FastAPI()


@app.get("/")
def root():
    a = "a"
    b = "b" + a
    return {"hello world": b}


if __name__ == "__main__":
    uvicorn.run(app, host="0.0.0.0", port=8000)

Описание __name__ == "__main__"

Главная цель использования __name__ == "__main__" в том, чтобы код выполнялся при запуске файла с помощью:

$ python myapp.py

но не вызывался, когда другой файл импортирует это, например:

from myapp import app

Больше деталей

Давайте назовём ваш файл myapp.py.

Если вы запустите его с помощью:

$ python myapp.py

то встроенная переменная __name__, автоматически создаваемая Python в вашем файле, будет иметь значение строкового типа "__main__".

Тогда выполнится условие и эта часть кода:

    uvicorn.run(app, host="0.0.0.0", port=8000)

будет запущена.


Но этого не произойдет, если вы импортируете этот модуль (файл).

Таким образом, если у вас есть файл importer.py с таким импортом:

from myapp import app

# Some more code

то автоматическая создаваемая внутри файла myapp.py переменная __name__ будет иметь значение отличающееся от "__main__".

Следовательно, строка:

    uvicorn.run(app, host="0.0.0.0", port=8000)

не будет выполнена.

Информация

Для получения дополнительной информации, ознакомьтесь с официальной документацией Python.

Запуск вашего кода с помощью отладчика

Так как вы запускаете сервер Uvicorn непосредственно из вашего кода, вы можете вызвать Python программу (ваше FastAPI приложение) напрямую из отладчика.


Например, в Visual Studio Code вы можете выполнить следующие шаги:

  • Перейдите на панель "Debug".
  • Выберите "Add configuration...".
  • Выберите "Python"
  • Запустите отладчик "Python: Current File (Integrated Terminal)".

Это запустит сервер с вашим FastAPI кодом, остановится на точках останова, и т.д.

Вот как это может выглядеть:


Если используете Pycharm, вы можете выполнить следующие шаги:

  • Открыть "Run" меню.
  • Выбрать опцию "Debug...".
  • Затем в появившемся контекстном меню.
  • Выбрать файл для отладки (в данном случае, main.py).

Это запустит сервер с вашим FastAPI кодом, остановится на точках останова, и т.д.

Вот как это может выглядеть: