A fast and easy-to-use asyncio ORM(Object-relational Mapper) for performing C.R.U.D. ops within RBDMS tables using python
Project description
A fast and easy-to-use asyncio ORM(Object-relational Mapper) for performing C.R.U.D. ops within RBDMS tables using python.
Key Features
- asyncio ready
- database / table query cache
- SQL-like query syntax
- Automatic schema discovery / migrations
Documentation
https://aiopyql.readthedocs.io/
Instalation
$ virtualenv -p python3.7 aiopyql-env
$ source aiopyql-env/bin/activate
(aiopyql-env)$ pip install aiopyql
Compatable Databases
Getting Started
import asyncio
from aiopyql import data
async def main():
#sqlite connection
sqlite_db = await data.Database.create(
database="testdb"
)
# create table
await db.create_table(
'keystore',
[
('key', str, 'UNIQUE NOT NULL'),
('value', str)
],
'key',
cache_enabled=True
)
# insert
await db.tables['keystore'].insert(
key='foo',
value={'bar': 30}
)
# update
await db.tables['keystore'].update(
value={'bar': 31},
where={'key': 'foo'}
)
# delete
await db.tables['keystore'].delete(
where={'key': 'foo'}
)
loop = asyncio.new_event_loop()
loop.run_until_complete(main())
Recipies
See other usage examples in recipies.
Postgres
import asyncio
from aiopyql import data
async def main():
mysql_db = await data.Database.create(
database='postgres_database',
user='postgres',
password='my-secret-pw',
host='localhost',
port=5432,
db_type='postgres'
)
loop = asyncio.new_event_loop()
loop.run_until_complete(main())
Mysql
import asyncio
from aiopyql import data
async def main():
mysql_db = await data.Database.create(
database='mysql_database',
user='mysqluser',
password='my-secret-pw',
host='localhost',
port=3306,
db_type='mysql'
)
loop = asyncio.new_event_loop()
loop.run_until_complete(main())
Idea / Suggestion / Issue
- Submit an Issue
- Create a Pull request
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 Distributions
No source distribution files available for this release.See tutorial on generating distribution archives.
Built Distribution
aiopyql-0.359-py3-none-any.whl
(26.2 kB
view details)
File details
Details for the file aiopyql-0.359-py3-none-any.whl
.
File metadata
- Download URL: aiopyql-0.359-py3-none-any.whl
- Upload date:
- Size: 26.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.1 importlib_metadata/4.0.1 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.8.10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 137e15cbaa7e57572d733ad2318988123a5f9b33f95117ee4157c2f6b160ba2a |
|
MD5 | ff99ba4a3d341e8bb0085f7a09c0cab0 |
|
BLAKE2b-256 | 96e75658aa1cc8a7d154d2d74cbb10d0f5cec405d9307ad547de7633966d4200 |