diff --git a/README.md b/README.md index e69de29..38732ca 100644 --- a/README.md +++ b/README.md @@ -0,0 +1,99 @@ +# sqlalchemy‑fastapi‑pydentic‑pytest + +Изучительный пет‑проект для интеграции FastAPI, SQLAlchemy, Pydantic и Pytest. + +--- + +## 🔍 Описание + +Проект демонстрирует, как: + +- работать с **FastAPI**: REST API эндпоинты, маршруты, зависимости и схемы; +- использовать **SQLAlchemy** для работы с базой данных: модели, сессии, CRUD‑операции; +- валидировать данные через **Pydantic**; +- тестировать всё через **Pytest**: модульные и интеграционные тесты. + +Цель — собрать всё вместе и понять best practices. + +--- + +## 📁 Структура проекта + +```text +/ +├── server/ +│ ├── … # код FastAPI + SQLAlchemy + модели, схемы и маршруты +├── run.py # точка входа +├── requirements # зависимости +├── README.md # этот файл +├── .gitignore +└── Plan # план/заметки по проекту +``` + +--- + +## ⚙️ Установка и запуск + +```bash +# клонировать репозиторий +git clone +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) +``` + +--- + +## 🧪 Тестирование + +```bash +# запустить все тесты +pytest +``` + +Описание тестов: + +- тесты на CRUD операции; +- тесты схем Pydantic; +- тесты ответов API (возможно с тестовым клиентом FastAPI). + +--- + +## 🛠 Используемые технологии + +| Компонент | Версия / Пример использования | +|-------------------|-------------------------------------| +| Python | ≥ 3.x | +| FastAPI | фреймворк для веб‑API | +| SQLAlchemy | ORM для работы с базой данных | +| Pydantic | валидация и сериализация данных | +| Pytest | тестирование | + +--- + +## 🚧 Возможности для доработки / TODO + +- добавление миграций (например, с Alembic); +- обработка ошибок и кастомные исключения; +- логирование; +- настройка CI/CD; +- защита маршрутов (аутентификация / авторизация); +- конфигурация через env‑переменные; +- более подробная документация API (например, OpenAPI схемы). + +--- + +## 📄 Лицензия + +Этот проект учебный.