Первый запуск FastAPI
Создаём первое приложение
Для кого эта статья: Для тех, кто уже создал репозиторий на GitHub и готов запустить свой первый FastAPI-проект.
Шаг 1. Активация виртуального окружения
Перед установкой зависимостей активируйте виртуальное окружение:
Windows:
.venv\Scripts\activate
Linux / Mac:
source .venv/bin/activate
После активации в начале строки появится (.venv).
Шаг 2. Создание requirements.txt
Создайте файл requirements.txt в корне проекта:
# ============================================
# Core
# ============================================
fastapi
uvicorn
python-dotenv
pydantic-settings
# ============================================
# Database
# ============================================
sqlalchemy # версия 2.0+ обязательна для async
aiomysql # MySQL async driver
aiosqlite # SQLite async driver
alembic # миграции
black # форматирование кода
# ============================================
# Admin panel
# ============================================
sqladmin # админка для FastAPI
# ============================================
# Auth & security
# ============================================
passlib[bcrypt] # хеширование паролей
python-jose[cryptography] # JWT токены
python-multipart # для форм (регистрация)
# ============================================
# Async utilities
# ============================================
httpx # async HTTP клиент
aiofiles # async работа с файлами
aiologger # async логирование
# ============================================
# Templates
# ============================================
jinja2 # шаблонизатор для HTML страниц
# ============================================
# Parsing & web scraping
# ============================================
beautifulsoup4 # парсинг HTML/XML
readability-lxml # извлечение чистого текста из HTML
# ============================================
# HTTP клиент (синхронный)
# ============================================
requests # для планировщика и тестов
# ============================================
# Data processing
# ============================================
pandas # для работы с данными
openpyxl # для Excel-файлов
# ============================================
# AI & LLM
# ============================================
openai # для DeepSeek API
anthropic # для DeepSeek через Anthropic-совместимый эндпоинт
# ============================================
# Async web scraping
# ============================================
aiohttp # асинхронные HTTP-запросы
lxml # быстрый парсинг HTML
Почему так много зависимостей? Мы устанавливаем всё сразу для будущего проекта. В нём будет авторизация, база данных, админ-панель, работа с AI, парсинг сайтов и логирование. Так мы не будем возвращаться к установке библиотек в каждой статье.
Установите зависимости:
pip install -r requirements.txt
Процесс может занять несколько минут.
Шаг 3. Создание файла app/main.py
Создайте папку app/ и внутри неё файл main.py:
from fastapi import FastAPI
app = FastAPI(
title="Мой первый проект на FastAPI",
version="0.1.0"
)
@app.get("/")
async def root():
return {"message": "Hello World!"}
@app.get("/about")
async def about():
return {"message": "Это страница о проекте."}
if __name__ == "__main__":
import uvicorn
uvicorn.run(
"app.main:app",
host="127.0.0.1",
port=8000,
reload=True
)
Шаг 4. Запуск сервера
Запустите приложение командой:
uvicorn app.main:app --reload
Или через Python:
python -m app.main
После запуска вы увидите:
INFO: Uvicorn running on http://127.0.0.1:8000
INFO: Application startup complete.
Шаг 5. Проверка работы
Откройте в браузере:
- http://127.0.0.1:8000 — увидите
{"message":"Hello World!"} - http://127.0.0.1:8000/about — увидите
{"message":"Это страница о проекте."} - http://127.0.0.1:8000/docs — автоматическая документация Swagger UI. FastAPI сам генерирует её по вашему коду. Здесь можно посмотреть все доступные эндпоинты и даже отправить тестовый запрос прямо из браузера. Это одна из главных фишек FastAPI — документация всегда актуальна, потому что генерируется автоматически.
Шаг 6. Сохраняем изменения в GitHub
git add .
git commit -m "Первый запуск FastAPI: main.py и запуск сервера"
git push origin main
Итог
Сегодня мы:
- ✅ Активировали виртуальное окружение
- ✅ Создали
requirements.txtсо всеми зависимостями - ✅ Установили зависимости
- ✅ Создали
main.pyс двумя эндпоинтами - ✅ Запустили сервер и проверили работу через браузер и Swagger UI
- ✅ Закоммитили изменения в GitHub
В следующих статьях мы будем добавлять утилиты для полноценного проекта.
Следующая статья: Логирование