update readme
This commit is contained in:
99
README.md
99
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 <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)
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🧪 Тестирование
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# запустить все тесты
|
||||||
|
pytest
|
||||||
|
```
|
||||||
|
|
||||||
|
Описание тестов:
|
||||||
|
|
||||||
|
- тесты на CRUD операции;
|
||||||
|
- тесты схем Pydantic;
|
||||||
|
- тесты ответов API (возможно с тестовым клиентом FastAPI).
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🛠 Используемые технологии
|
||||||
|
|
||||||
|
| Компонент | Версия / Пример использования |
|
||||||
|
|-------------------|-------------------------------------|
|
||||||
|
| Python | ≥ 3.x |
|
||||||
|
| FastAPI | фреймворк для веб‑API |
|
||||||
|
| SQLAlchemy | ORM для работы с базой данных |
|
||||||
|
| Pydantic | валидация и сериализация данных |
|
||||||
|
| Pytest | тестирование |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🚧 Возможности для доработки / TODO
|
||||||
|
|
||||||
|
- добавление миграций (например, с Alembic);
|
||||||
|
- обработка ошибок и кастомные исключения;
|
||||||
|
- логирование;
|
||||||
|
- настройка CI/CD;
|
||||||
|
- защита маршрутов (аутентификация / авторизация);
|
||||||
|
- конфигурация через env‑переменные;
|
||||||
|
- более подробная документация API (например, OpenAPI схемы).
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 📄 Лицензия
|
||||||
|
|
||||||
|
Этот проект учебный.
|
||||||
|
|||||||
Reference in New Issue
Block a user