fastapi-sqlalchemy-asyncpg
fastapi-sqlalchemy-asyncpg copied to clipboard
Integration of FastAPI framework supported by Pydantic with SQLAlchemy ORM and PostgreSQL on asyncpg driver
fastapi-sqlalchemy-asyncpg
Example for FastAPI integration with SQLAlchemy ORM with PostgreSQL via asyncpg a fast Database Client Library for python/asyncio.
Beside of using latest and greatest version of SQLAlchemy with it robustness, powerfulness and speed of asyncpg there is FastAPI (modern, fast (high-performance), web framework for building APIs with Python 3.8+ based on standard Python type hints.) already reviewed on thoughtworks and noted in Python Developers Survey 2021 Results as the fifth official annual Python Developers Survey, conducted as a collaborative effort between the Python Software Foundation and JetBrains.
How to Setup
To build , run and test and more ... use magic of make help to play with this project.
make help
and you receive below list:
build Build project with compose
clean Clean Reset project containers and volumes with compose
feed_db create database objects and insert data
format Format project code.
help Show this help
lint Lint project code.
migrate-apply apply alembic migrations to database/schema
migrate-create create new alembic migration
py-upgrade Upgrade project py files with pyupgrade library for python version 3.10
requirements Refresh requirements.txt from pipfile.lock
safety Check project and dependencies with safety https://github.com/pyupio/safety
slim-build with power of docker-slim build smaller and safer images
test Run project tests
up Run project with compose
How to feed database
It took me a while to find nice data set. Hope works of Shakespeare as example will be able to cover first part with read only declarative base configuration and all type of funny selects :) Data set is coming form https://github.com/catherinedevlin/opensourceshakespeare Next models were generated with https://github.com/agronholm/sqlacodegen And after some tweaking I got desired result
Hope you enjoy it.
Change Log
- 4 JUN 2022 alembic migrations added to project
- 6 JUN 2022 added initial dataset for shakespeare models