跳转到主要内容

asyncio数据库查询生成器

项目描述

aql

简单、异步查询库,适用于现代Python

build status code coverage version license code style

亮点

aql是一个简单、现代且可组合的查询构建器,支持使用统一API异步执行针对多个数据库后端的查询。aql使用现代、类型注解的数据结构,用于表定义和查询。

aql仍处于早期alpha阶段。并非所有功能都可用或已定稿。

定义表

@table("objects")
class Object:
    id: PrimaryKey[AutoIncrement[int]]
    name: Unique[str]
    description: text
    created: datetime

构建查询

query = (
    Object.select()
    .where(Object.id >= 25)
    .order_by(Object.name)
    .limit(5)
)

sql, params = SqlEngine.prepare(query)
# "select * from `objects` where `id` >= ? order by `name` asc limit 5", (25)

执行查询

async with connect(...) as db:
    cursor = db.execute(Object.select().where(Object.id < 100))
    async for row in cursor:
        print(f"{row.id} {row.name} {row.description}")

简单操作

async with connect(...) as db:
    rows = await db.get(Object, Object.id == 100)
    rows[0].description += "updated"

    await db.modify(Object, rows)

许可证

aql版权所有Amethyst Reese,并许可在MIT许可证下。我正在此存储库中以开源许可证的形式提供代码。这是我的个人存储库;您从我收到的代码许可证是我个人的,而不是从我雇主那里获得的。有关详细信息,请参阅LICENSE文件。

项目详情


下载文件

下载适用于您平台文件的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源分发

aql-0.5.0.tar.gz (27.0 kB 查看散列)

上传于 源代码

构建的发行版

aql-0.5.0-py3-none-any.whl (28.9 kB 查看哈希值)

上传于 Python 3

由以下组织支持