Wrapper for connection to database
Project description
ConnectKit Database [en|ru]
ConnectKit Database is a wrapper under SQLAlchemy with some utils.
Include pydantic settings, custom json serializer, template code.
Installation
Three types of connectors are supported:
-[x] PostgreSQL (sync/async) -[x] MySQL (MariaDB) (sync/async) -[x] Sqlite3 (sync/async)
By default, the DB connector package is not installed (exclude built-in sqlite3), extras are specified for installation.
To install sync versions:
pip install ConnectKit-Database[postgresql] # Install driver for PostgreSQL
pip install ConnectKit-Database[mysql] # Install driver for MySQL/MariaDB
pip install ConnectKit-Database[all] # Install all sync drivers
To install async versions:
pip install ConnectKit-Database[asyncpg] # Install driver for PostgreSQL
pip install ConnectKit-Database[aiomysql] # Install driver for MySQL/MariaDB
pip install ConnectKit-Database[aiosqlite] # Install driver for Sqlite3
pip install ConnectKit-Database[asyncall] # Install all async drivers
Usage
Environment variables are used for connection by default.
Variables are extracted from the environment or .env file:
DB_ADDR= # Address for default connection to postgres or mysql(mariadb)
DB_PORT=5432 # Port for default connection to postgres or mysql(mariadb)
DB_ADAPTER=postgresql # Select default connection dialect (from postgresql, mysql and sqlite)
DB_USERNAME=postgres # Username for default connection postgres or mysql(mariadb)
DB_PASSWORD= # Password for default connection postgres or mysql(mariadb)
DB_NAME=postgres # Database for postgres or mysql(mariadb), filepath for sqlite
DB_POOL_RECYCLE=3600 # Global pool recycle timeout for driver session
DB_ECHO: bool = False # Global log all sql statements (for debug purposes)
These variables are frozen.
To open a connection, the Database and AsyncDatabase context managers are used:
from database import Database, AsyncDatabase, AsyncSession
with Database() as db:
db.execute(...)
async with AsyncDatabase() as db:
await db.execute(...)
# For FastAPI:
async def db_dependency() -> AsyncSession:
async with AsyncDatabase() as db:
yield await db.execute(...)
The default Base can be used to create models:
from database import Base
from sqlalchemy.orm import Mapped
class Model(Base):
id: Mapped[int]
To initialize ORM models via Base for default connection:
from database import init_default_base, async_init_default_base
from database import Base
init_default_base(Base.metadata)
await async_init_default_base(Base.metadata)
or via context managers:
from database import Database, AsyncDatabase
from database import Base
Database().init_base(Base.metadata)
await (AsyncDatabase().init_base(Base.metadata))
License
ConnectKit Database is MIT License.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file connectkit_database-2.2.1.tar.gz.
File metadata
- Download URL: connectkit_database-2.2.1.tar.gz
- Upload date:
- Size: 8.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: pdm/2.21.0 CPython/3.10.11 Windows/10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
00f4ccd3bd841ead7d6a69c09b76cccab8d2ede84a4a012cc18766221b39c7a7
|
|
| MD5 |
f22bf8c43556f5cc5484d7153f90e645
|
|
| BLAKE2b-256 |
10254155b2fc54086cb60777743f7626ba75f05661f4da674bc38d506553da35
|
File details
Details for the file connectkit_database-2.2.1-py3-none-any.whl.
File metadata
- Download URL: connectkit_database-2.2.1-py3-none-any.whl
- Upload date:
- Size: 10.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: pdm/2.21.0 CPython/3.10.11 Windows/10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3aeb2052f0a9535b3441c533a01db80d109962edc4e40d3719ed3644a32d6669
|
|
| MD5 |
22b8cf0bf84b3a6305def3029afaa7b2
|
|
| BLAKE2b-256 |
43e9cc2c46e4479f1b79dcbe8df75c457b36d65dceb39b25d92b8fd814851bf9
|