3.2 KiB
3.2 KiB
sqlalchemy‑fastapi‑pydentic‑pytest
Изучительный пет‑проект для интеграции FastAPI, SQLAlchemy, Pydantic и Pytest.
🔍 Описание
Проект демонстрирует, как:
- работать с FastAPI: REST API эндпоинты, маршруты, зависимости и схемы;
- использовать SQLAlchemy для работы с базой данных: модели, сессии, CRUD‑операции;
- валидировать данные через Pydantic;
- тестировать всё через Pytest: модульные и интеграционные тесты.
Цель — собрать всё вместе и понять best practices.
📁 Структура проекта
/
├── server/
│ ├── … # код FastAPI + SQLAlchemy + модели, схемы и маршруты
├── run.py # точка входа
├── requirements # зависимости
├── README.md # этот файл
├── .gitignore
└── Plan # план/заметки по проекту
⚙️ Установка и запуск
# клонировать репозиторий
git clone <URL репо>
cd sqlalchemy-fastapi-pydentic-pytest
# создать виртуальное окружение
python3 -m venv venv
source venv/bin/activate # в Linux/macOS
venv\Scripts\activate # в Windows
# установить зависимости
pip install -r requirements
# запустить приложение
python run.py
# по умолчанию запустится FastAPI‑сервер (напр. localhost:8000)
🧪 Тестирование
# запустить все тесты
pytest
Описание тестов:
- тесты на CRUD операции;
- тесты схем Pydantic;
- тесты ответов API (возможно с тестовым клиентом FastAPI).
🛠 Используемые технологии
| Компонент | Версия / Пример использования |
|---|---|
| Python | ≥ 3.x |
| FastAPI | фреймворк для веб‑API |
| SQLAlchemy | ORM для работы с базой данных |
| Pydantic | валидация и сериализация данных |
| Pytest | тестирование |
🚧 Возможности для доработки / TODO
- добавление миграций (например, с Alembic);
- обработка ошибок и кастомные исключения;
- логирование;
- настройка CI/CD;
- защита маршрутов (аутентификация / авторизация);
- конфигурация через env‑переменные;
- более подробная документация API (например, OpenAPI схемы).
📄 Лицензия
Этот проект учебный.