Skip to main content

一个异步 PostgreSQL 驱动程序

项目描述

GitHub 操作状态 https://img.shields.io/pypi/v/asyncpg.svg

asyncpg是专为 PostgreSQL 和 Python/asyncio 设计的数据库接口库。asyncpg 是一个高效、干净的 PostgreSQL 服务器二进制协议实现,用于 Python 的asyncio 框架。您可以在介绍性博客文章中阅读有关 asyncpg 的更多 信息。

asyncpg 需要 Python 3.6 或更高版本,并且支持 PostgreSQL 版本 9.5 到 14。较旧的 PostgreSQL 版本或其他实现 PostgreSQL 协议的数据库可能工作,但尚未积极测试。

文档

可以在 此处找到项目文档。

表现

在我们的测试中,asyncpg 平均比 psycopg2(及其 asyncio 变体 - aiopg)快3 倍。

https://raw.githubusercontent.com/MagicStack/asyncpg/master/performance.png

以上结果是 2020 年 11 月使用 PostgreSQL 客户端驱动程序基准测试工具台获得的基准的几何平均值 (点击图表查看完整详情)。

特征

asyncpg 本地实现 PostgreSQL 服务器协议并直接公开其功能,而不是将它们隐藏在像 DB-API 这样的通用外观之后。

这使 asyncpg 能够对以下内容提供易于使用的支持:

  • 准备好的陈述

  • 可滚动游标

  • 查询结果的部分迭代

  • 复合类型、数组以及它们的任意组合的自动编码和解码

  • 直接支持自定义数据类型

安装

asyncpg 在 PyPI 上可用并且没有依赖项。使用 pip 安装:

$ pip install asyncpg

基本用法

import asyncio
import asyncpg

async def run():
    conn = await asyncpg.connect(user='user', password='password',
                                 database='database', host='127.0.0.1')
    values = await conn.fetch(
        'SELECT * FROM mytable WHERE id = $1',
        10,
    )
    await conn.close()

loop = asyncio.get_event_loop()
loop.run_until_complete(run())

执照

asyncpg 是在 Apache 2.0 许可下开发和分发的。

下载文件

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

源分布

asyncpg-0.26.0.tar.gz (810.0 kB 查看哈希

已上传 source

内置发行版

asyncpg-0.26.0-cp310-cp310-win_amd64.whl (516.9 kB 查看哈希

已上传 cp310

asyncpg-0.26.0-cp310-cp310-win32.whl (469.3 kB 查看哈希

已上传 cp310

asyncpg-0.26.0-cp310-cp310-musllinux_1_1_x86_64.whl (3.2 MB 查看哈希

已上传 cp310

asyncpg-0.26.0-cp310-cp310-macosx_10_9_x86_64.whl (637.1 kB 查看哈希

已上传 cp310

asyncpg-0.26.0-cp39-cp39-win_amd64.whl (530.7 kB 查看哈希

已上传 cp39

asyncpg-0.26.0-cp39-cp39-win32.whl (481.6 kB 查看哈希

已上传 cp39

asyncpg-0.26.0-cp39-cp39-musllinux_1_1_x86_64.whl (3.2 MB 查看哈希

已上传 cp39

asyncpg-0.26.0-cp39-cp39-macosx_10_9_x86_64.whl (654.3 kB 查看哈希

已上传 cp39

asyncpg-0.26.0-cp38-cp38-win_amd64.whl (531.4 kB 查看哈希

已上传 cp38