Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/nezorinegor/fastapi-pattern

⚡ Шаблон для создания backend приложений на фреймворке FastAPI в связке с Redis, Nginx и Mysql
https://github.com/nezorinegor/fastapi-pattern

alembic fastapi mysql nginx redis

Last synced: 7 days ago
JSON representation

⚡ Шаблон для создания backend приложений на фреймворке FastAPI в связке с Redis, Nginx и Mysql

Awesome Lists containing this project

README

        

# Шаблон FastPAI для быстрого старта

 
 
 
 

### Шаблон создан для того, что бы можно было писать проект с бизнес-логики, без затрат времени на:
1. подключения синхронного / асинхронного движка `MySQL`
2. подключения `Alembic` миграций
3. подключение прокси `Nginx`
4. подключение кэша `Redis`
5. установку 'портабельных' зависимостей через `Dockerfile` / `docker-compose.yaml`

### [Зависимость для работы с базой данных](src/database.py)
```python
# sample: session: AsyncSession = Depends(get_session)
async def get_session() -> AsyncSession:
async with session_factory() as session:
yield session
```

### [Установка моделей для миграций](alembic/env.py)
```python
from src.database import Base
# Your models here ↓
from src..model imaport SomeModel

target_metadata = Base.metadata
```

### [Проксирование fastapi контейнера](nginx/conf.d/default.conf)
```bash
upstream backend {
server fastapi:5000;
}

server {
listen 80;
location / {
proxy_pass http://backend;
}
}
```
### Ревизии миграции:
1. ```
alembic revision --autogenerate -m ""
```

2. ```python
alembic upgrade head
```

### Запуск

1. ```
git clone https://github.com/NeZorinEgor/FastAPI-Pattern.git
```

2. ```
cd FastAPI-Pattern
```

3. ```
docker-compose up --build
```