Skip to main content

Simple asynchronous MySQL ORM class.

Project description

aio_ormsql

Simple asynchronous MySQL ORM class.

Easy install

pip3 install aio_ormsql

Required

  • pip3 install asyncio aiomysql
  • Python 3.6+

Example usage

  1. Do imports:
from aio_ormsql.db import DataBase
from aio_ormsql.classes Table, Column, WHERE

Where:

  • DataBase - class for working with MySQL
  • Table - class for creating a new table
  • Column - class for creating a columns
  • WHERE - class for creating where statements
  1. Follow examples ans see their output:

Examples

Creating table

tbl = Table(
    'tests',
    Column('id', int),
    Column('tname', str)
)

Connection to database

db = DataBase('admin', 'admin', 'tests')
await db.connect()

Simple WHERE statement

where = WHERE(
    tbl.tname == 'admin'
)
print(where)

# Output:
# WHERE `tname`='admin'

Another WHERE statement

where2 = WHERE(
    (tbl.id >= 20) | (tbl.tname == 'admin')
)
print(where2)

# Output:
# WHERE `id`>=20 OR `tname`='admin'

SELECT example

statement = await db.select(
    [tbl.id, tbl.tname], where=where, table=tbl, back=True
)
print(statement)

# Output:
# SELECT DISTINCT `id`, `tname` FROM `tests` WHERE `tname`='admin'

SELECT example 2

statement2 = await db.select(
    [tbl.id, tbl.tname], False, where2, table=tbl, back=True
)
print(statement2)

# Output:
# SELECT`id`, `tname` FROM `tests` WHERE `id`>=20 OR `tname`='admin'

INSERT example

statement3 = await db.insert(
    {
        tbl.id: 123,
        tbl.tname: 'Johan'
    },
    tbl,
    back=True
)
print(statement3)

# Output:
# INSERT INTO `tests` (`id`, `tname`) VALUES (123, 'Johan')

INSERT example 2

statement4 = await db.update(
    {
        tbl.id: '123',
        tbl.tname: 'Admin'
    },
    WHERE(tbl.tname == 'Johan'),
    tbl,
    back=True
)
print(statement4)

# Output:
# UPDATE `tests` SET `id`=123, `tname`='Admin' WHERE `tname`='Johan'

Working with large DB

array = db.fetch_gen(await db.select(
    [tbl.id, tbl.tname], back=True
))

async for item in array:
    print('New pair:', item)
    # And you can see row-by-row output

Closing connection and wait for completing tasks

await db.close()

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

aio_ormsql-0.0.5.tar.gz (4.7 kB view details)

Uploaded Source

File details

Details for the file aio_ormsql-0.0.5.tar.gz.

File metadata

  • Download URL: aio_ormsql-0.0.5.tar.gz
  • Upload date:
  • Size: 4.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/2.0.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.4.0 requests-toolbelt/0.9.1 tqdm/4.36.1 CPython/3.6.8

File hashes

Hashes for aio_ormsql-0.0.5.tar.gz
Algorithm Hash digest
SHA256 93380358dbb502c599367f68a99d6aef4974ecbd296bd95e2b8951ca160219f5
MD5 78edc3e200b5923e228eb4655e9a2311
BLAKE2b-256 6df39979f047351c503f531ae392f6e486bce23a7f3ebae960a2cc0f378553b9

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page