Skip to content

bandirom/fastapi-template

Repository files navigation

FastApi project

  • Install dependencies (Source: poetry)
poetry install --with dev
  • Create .env file
DATABASE_URI="postgresql+asyncpg://develop:develop@localhost/develop"
DEBUG=true
SECRET_KEY="someSecret"
  • Run docker db
docker-compose up -d
  • Run project
uvicorn main:app --reload

or

python main.py

Set up Alembic

  • Init alembic
alembic init -t async alembic
  • check if Alembic is working well
alembic current
  • Generate migrations
alembic revision --autogenerate -m "Create user"
  • Migrate
alembic upgrade head

Work with async DB

  • Get users
from sqlalchemy import select
from sqlalchemy.ext.asyncio import AsyncSession
from db.models import User

async def get_users(session: AsyncSession):
    result = await session.execute(select(User))
    return result.scalars().all()

Docker & docker compose

Useful commands

  • Build image
docker build -t fastapi-project -f docker/Dockerfile .
docker compose build
  • Run container
docker run --rm -it -p 8080:8080 fastapi-project
docker compose up -d
  • Open shell
docker run --rm --entrypoint="" -it fastapi-project sh
docker compose exec app sh

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published