跳转到主要内容

asyncio到标准sqlite3模块的桥梁

项目描述

Documentation Status PyPI Release Changelog MIT Licensed

aiosqlite为sqlite数据库提供了一个友好、异步的接口。

它复制了标准的sqlite3模块,但包含了所有标准连接和游标方法的异步版本,以及用于自动关闭连接和游标的上下文管理器

async with aiosqlite.connect(...) as db:
    await db.execute("INSERT INTO some_table ...")
    await db.commit()

    async with db.execute("SELECT * FROM some_table") as cursor:
        async for row in cursor:
            ...

它也可以用传统的、过程式的方式进行使用

db = await aiosqlite.connect(...)
cursor = await db.execute('SELECT * FROM some_table')
row = await cursor.fetchone()
rows = await cursor.fetchall()
await cursor.close()
await db.close()

aiosqlite还复制了大多数sqlite3的高级功能

async with aiosqlite.connect(...) as db:
    db.row_factory = aiosqlite.Row
    async with db.execute('SELECT * FROM some_table') as cursor:
        async for row in cursor:
            value = row['column']

    await db.execute('INSERT INTO foo some_table')
    assert db.total_changes > 0

安装

aiosqlite与Python 3.8及更高版本兼容。您可以从PyPI安装它

$ pip install aiosqlite

详情

aiosqlite允许在不阻塞其他协程执行查询或数据检索时与SQLite数据库在主AsyncIO事件循环中进行交互。它通过每个连接使用单个共享线程来实现这一点。此线程在共享请求队列中执行所有操作,以防止操作重叠。

连接对象是真实连接的代理,包含共享执行线程,并提供了用于自动关闭连接的上下文管理器。游标类似地是真实游标的代理,并提供异步迭代器来查询结果。

许可证

aiosqlite版权所有 Amethyst Reese,并受MIT许可证的许可。我在此仓库下以开源许可证提供代码。这是我的个人仓库;您从我这里获得的代码许可证来自我,而不是来自我的雇主。有关详细信息,请参阅LICENSE文件。

项目详情


下载文件

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

源分布

aiosqlite-0.20.0.tar.gz (21.7 kB 查看哈希值)

上传时间

构建分布

aiosqlite-0.20.0-py3-none-any.whl (15.6 kB 查看哈希值)

上传时间 Python 3

由以下机构支持