Skip to main content

SQLAlchemy 1.4 / 2.0 support for aiohttp.

Project description

Release Python versions Downloads count Build status Test coverage Documentation

SQLAlchemy 1.4 / 2.0 support for AIOHTTP.

The library provides the next features:

  • initializing asynchronous sessions through a middlewares;

  • initializing asynchronous sessions through a decorators;

  • simple access to one asynchronous session by default key;

  • preventing attributes from being expired after commit by default;

  • support different types of request handlers;

  • support nested applications.

Documentation

https://aiohttp-sqlalchemy.readthedocs.io

Installation

pip install aiohttp-sqlalchemy

Simple example

Install aiosqlite for work with sqlite3:

pip install aiosqlite

Copy and paste this code in a file and run:

from aiohttp import web
import aiohttp_sqlalchemy
from aiohttp_sqlalchemy import sa_session
from datetime import datetime
import sqlalchemy as sa
from sqlalchemy import orm


metadata = sa.MetaData()
Base = orm.declarative_base(metadata=metadata)


class MyModel(Base):
    __tablename__ = 'my_table'

    pk = sa.Column(sa.Integer, primary_key=True)
    timestamp = sa.Column(sa.DateTime(), default=datetime.now)


async def main(request):
    db_session = sa_session(request)

    async with db_session.begin():
        db_session.add_all([MyModel()])
        stmt = sa.select(MyModel)
        result = await db_session.execute(stmt)
        items = result.scalars()

    data = {}
    for item in items:
        data[item.pk] = item.timestamp.isoformat()

    return web.json_response(data)


async def app_factory():
    app = web.Application()

    aiohttp_sqlalchemy.setup(app, [
        aiohttp_sqlalchemy.bind('sqlite+aiosqlite:///'),
    ])
    await aiohttp_sqlalchemy.init_db(app, metadata)

    app.add_routes([web.get('/', main)])

    return app

if __name__ == '__main__':
    web.run_app(app_factory())

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

aiohttp-sqlalchemy-0.16.0.tar.gz (6.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

aiohttp_sqlalchemy-0.16.0-py3-none-any.whl (8.1 kB view details)

Uploaded Python 3

File details

Details for the file aiohttp-sqlalchemy-0.16.0.tar.gz.

File metadata

  • Download URL: aiohttp-sqlalchemy-0.16.0.tar.gz
  • Upload date:
  • Size: 6.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.1.4 CPython/3.9.5 Linux/5.4.0-74-generic

File hashes

Hashes for aiohttp-sqlalchemy-0.16.0.tar.gz
Algorithm Hash digest
SHA256 7388424b30a527af1e842b51a00acec59c610a94bc8d8efc7df3f952d9462073
MD5 4a7f3d2a4266353d9805096f4c91d71a
BLAKE2b-256 85fa877ce4d0dd6a0a93c4b3a477d500ddd8719ae559e59327e054ebda183fa2

See more details on using hashes here.

File details

Details for the file aiohttp_sqlalchemy-0.16.0-py3-none-any.whl.

File metadata

  • Download URL: aiohttp_sqlalchemy-0.16.0-py3-none-any.whl
  • Upload date:
  • Size: 8.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.1.4 CPython/3.9.5 Linux/5.4.0-74-generic

File hashes

Hashes for aiohttp_sqlalchemy-0.16.0-py3-none-any.whl
Algorithm Hash digest
SHA256 a6d2cf9043ff103619c3d8dc1470638f175549345b26d44f3d18df0bf78be3f8
MD5 94e19b03bb2b8432965acaa5ef6deebd
BLAKE2b-256 1e4a176a3f8c0534ae65546c518ee9d91c5b8ea16be30c8e0f3baabff74d9bf0

See more details on using hashes here.

Supported by

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