Skip to main content

SQLAlchemy 1.4 / 2.0 support for aiohttp.

Project description

Read The Docs build Release PyPI downloads count MIT License Python version support GitHub continuous integration codecov.io status for master branch Codacy

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 datetime import datetime

import sqlalchemy as sa
from aiohttp import web
from sqlalchemy import orm

import aiohttp_sqlalchemy as ahsa

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):
    sa_session = ahsa.get_session(request)

    async with sa_session.begin():
        sa_session.add(MyModel())
        result = await sa_session.execute(sa.select(MyModel))
        result = result.scalars()

    data = {
        instance.pk: instance.timestamp.isoformat()
        for instance in result
    }
    return web.json_response(data)


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

    ahsa.setup(app, [
        ahsa.bind('sqlite+aiosqlite:///'),
    ])
    await ahsa.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.28.0.tar.gz (9.1 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.28.0-py3-none-any.whl (9.8 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for aiohttp-sqlalchemy-0.28.0.tar.gz
Algorithm Hash digest
SHA256 2507eaa99ec53d8ec24dd584ad6e0a2836cc613cd075659c30ce1735f7b17ecc
MD5 ecb134537741a413bee5bd63ce7cc595
BLAKE2b-256 5ad21a7fba6236c9e4c729142e2fc39ba9f47c588437a28dac16dac09012bc9f

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for aiohttp_sqlalchemy-0.28.0-py3-none-any.whl
Algorithm Hash digest
SHA256 94d8690c9535ee034782a00dfd87e2c058b2f9b5844190c943e296edb5e3d1e0
MD5 babb1c9dbb74aebb9e4434058db9ca82
BLAKE2b-256 4d37b4d7bc9024d78ff305934e174c95b1f432b9174c9ef00ec9d9f7c544db2e

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