Skip to main content

asyncio sqlalchemy support

Project description

asyncnsq

Downloads PyPI version

asyncio sqlalchemy support,with async/await

add asyncio sqlalchemy support

Install


pip install async-sqlalchemy

Usage examples


import asyncio
from sqlalchemy import Integer, Column, String, ForeignKey
from async_sqlalchemy.manager.async_pg import PostgresManager
from async_sqlalchemy.model.mixin import Mixin
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import relationship
from sqlalchemy.sql import select

dsn = "postgres://postgres:test@localhost:2345/test"

conf = {'dsn': dsn}

Base = declarative_base()


Manager = PostgresManager(conf=conf)


class User(Mixin, Base):

    _manager = Manager

    __tablename__ = 'test'
    id = Column(Integer, autoincrement=True,  primary_key=True)
    name = Column(String(50))

    def __repr__(self):
        return "<User(name='%s', id='%s')>" % (
            self.name, self.id)


class Parent(Mixin, Base):
    __tablename__ = 'parent'
    _manager = Manager
    id = Column(Integer, primary_key=True)
    child = relationship("Child", lazy='joined')


class Child(Mixin, Base):
    _manager = Manager
    __tablename__ = 'child'
    id = Column(Integer, primary_key=True)
    parent_id = Column(Integer, ForeignKey('parent.id'))
    parent = relationship("Parent", back_populates="child")


if __name__ == '__main__':

    loop = asyncio.get_event_loop()
    loop.run_until_complete(Manager.connect())

    result = loop.run_until_complete(Manager.get(
        User.objects([User.id]).join(
            Parent.__table__,
            Parent.id == User.id)))
    print(result)

    # result = loop.run_until_complete(Child.create_table())
    # print(result)
    # u = loop.run_until_complete(User.create(name='test'))
    # print('create', u)
    # print('get', loop.run_until_complete(User.get(name='test')))
    # print('all', loop.run_until_complete(User.all()))
    # u.name = 'aaa'
    # print('save', loop.run_until_complete(u.save()))

License

The asyncnsq is offered under MIT license.

Project details


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

async_sqlalchemy-1.0.0-py3-none-any.whl (2.1 kB view details)

Uploaded Python 3

File details

Details for the file async_sqlalchemy-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: async_sqlalchemy-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 2.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/40.0.0 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.6.5

File hashes

Hashes for async_sqlalchemy-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 211c923ff3a0f885357496c3902ef1bd03af4e74c43758688321cb1a03f44a8e
MD5 9c55c9dfd44fbc0ffedef977e797b82e
BLAKE2b-256 726ff06aed37c5b3eb8fc4f820f2a08b588cd39ec8f2a800b2eb499d5e657439

See more details on using hashes here.

Supported by

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