Отладка¶
Вы можете подключить отладчик в своем редакторе, например, в 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 кодом, остановится на точках останова, и т.д.
Вот как это может выглядеть: