Налагодження¶
Ви можете під'єднати дебагер у вашому редакторі коду, наприклад, у 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
у цьому випадку автоматично створена змінна __name__ всередині myapp.py не матиме значення "__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, зупиниться на точках зупину тощо.
Ось як це може виглядати:
