对python的异步数据库支持。
databases的Python项目详细描述
数据库
数据库为一系列数据库提供简单的异步支持。
它允许您使用强大的SQLAlchemy Core进行查询 表达式语言,并提供对postgresql、mysql和sqlite的支持。
数据库适合与任何异步web框架集成,例如Starlette, Sanic、Responder、Quart、aiohttp、Tornado、FastAPI或Bocadillo。
文档:https://www.encode.io/databases/
社区:https://discuss.encode.io/c/databases
需求:python 3.6+
安装
$ pip install databases
您可以使用以下命令安装所需的数据库驱动程序:
$ pip install databases[postgresql] $ pip install databases[mysql] $ pip install databases[sqlite]
驱动程序支持是使用asyncpg、aiomysql或aiosqlite之一提供的。
快速启动
对于本例,我们将创建一个非常简单的sqlite数据库来运行 质疑。
$ pip install databases[sqlite] $ pip install ipython
我们现在可以从控制台运行一个简单的示例。
注意,我们希望在这里使用ipython
,因为它支持使用await
直接来自控制台的表达式。
# Create a database instance, and connect to it.fromdatabasesimportDatabasedatabase=Database('sqlite:///example.db')awaitdatabase.connect()# Create a table.query="""CREATE TABLE HighScores (id INTEGER PRIMARY KEY, name VARCHAR(100), score INTEGER)"""awaitdatabase.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},]awaitdatabase.execute_many(query=query,values=values)# Run a database query.query="SELECT * FROM HighScores"rows=awaitdatabase.fetch_all(query=query)print('High Scores:',rows)
查看making database queries上的文档 有关如何开始将数据库与sqlalchemy核心表达式一起使用的示例。
--
数据库是BSD licensed代码。在英国布莱顿设计和制造。