跳转到主要内容

Python的异步数据库支持。

项目描述

Databases

Test Suite Package version

Databases为各种数据库提供简单的异步支持。

它允许您使用强大的SQLAlchemy Core表达式语言进行查询,并支持PostgreSQL、MySQL和SQLite。

Databases适合与任何异步Web框架集成,例如StarletteSanicResponderQuartaiohttpTornadoFastAPI

文档: https://www.encode.io/databases/

要求: Python 3.8+


安装

$ pip install databases

支持的数据库驱动程序包括

您可以使用以下方式安装所需的数据库驱动程序

$ pip install databases[asyncpg]
$ pip install databases[aiopg]
$ pip install databases[aiomysql]
$ pip install databases[asyncmy]
$ pip install databases[aiosqlite]

注意,如果您正在使用任何同步SQLAlchemy函数,例如engine.create_all()alembic迁移,那么您仍然需要安装同步数据库驱动程序:PostgreSQL的psycopg2和MySQL的pymysql


快速入门

在这个例子中,我们将创建一个非常简单的SQLite数据库来运行一些查询。

$ pip install databases[aiosqlite]
$ pip install ipython

现在我们可以从控制台运行一个简单的示例。

请注意,我们在这里想使用ipython,因为它支持在控制台直接使用await表达式。

# Create a database instance, and connect to it.
from databases import Database
database = Database('sqlite+aiosqlite:///example.db')
await database.connect()

# Create a table.
query = """CREATE TABLE HighScores (id INTEGER PRIMARY KEY, name VARCHAR(100), score INTEGER)"""
await database.execute(query=query)

# Insert some data.
query = "INSERT INTO HighScores(name, score) VALUES (:name, :score)"
values = [
    {"name": "Daisy", "score": 92},
    {"name": "Neil", "score": 87},
    {"name": "Carol", "score": 43},
]
await database.execute_many(query=query, values=values)

# Run a database query.
query = "SELECT * FROM HighScores"
rows = await database.fetch_all(query=query)
print('High Scores:', rows)

查看有关制作数据库查询的文档,了解如何开始使用SQLAlchemy核心表达式与数据库一起使用。

— ⭐️ —

数据库是BSD许可代码。由Brighton,英国设计和构建。

项目详情


下载文件

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

源分布

databases-0.9.0.tar.gz (31.1 kB 查看哈希)

上传时间

构建分布

databases-0.9.0-py3-none-any.whl (25.6 kB 查看哈希)

上传时间 Python 3

支持者