Перейти до змісту

Налагодження

Ви можете під'єднати дебагер у вашому редакторі коду, наприклад, у 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, зупиниться на точках зупину тощо.

Ось як це може виглядати: