3.6 KiB
Налагодження (Debugging)
Ви можете під'єднати дебагер у Вашому редакторі коду, наприклад, у Visual Studio Code або PyCharm.
Виклик uvicorn
У Вашому FastAPI-додатку імпортуйте та запустіть uvicorn
безпосередньо:
{* ../../docs_src/debugging/tutorial001.py hl[1,15] *}
Про __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
# Додатковий код
У цьому випадку автоматично створена змінна у файлі myapp.py
не матиме значення змінної __name__
як "__main__"
.
Отже, рядок:
uvicorn.run(app, host="0.0.0.0", port=8000)
не буде виконано.
/// info | Інформація
Більш детальну інформацію можна знайти в офіційній документації Python.
///
Запуск коду з вашим дебагером
Оскільки Ви запускаєте сервер Uvicorn безпосередньо з Вашого коду, Ви можете запустити вашу Python програму (ваш FastAPI додаток) безпосередньо з дебагера.
Наприклад, у Visual Studio Code Ви можете:
- Перейдіть на вкладку "Debug".
- Натисніть "Add configuration...".
- Виберіть "Python"
- Запустіть дебагер з опцією "
Python: Current File (Integrated Terminal)
".
Це запустить сервер з Вашим FastAPI кодом, зупиниться на точках зупину тощо.
Ось як це може виглядати:

Якщо Ви використовуєте PyCharm, ви можете:
- Відкрити меню "Run".
- Вибрати опцію "Debug...".
- Потім з'явиться контекстне меню.
- Вибрати файл для налагодження (у цьому випадку,
main.py
).
Це запустить сервер з Вашим FastAPI кодом, зупиниться на точках зупину тощо.
Ось як це може виглядати:
