对python的异步数据库支持。

databases的Python项目详细描述


数据库

Build StatusCoveragePackage version

数据库为一系列数据库提供简单的异步支持。

它允许您使用强大的SQLAlchemy Core进行查询 表达式语言,并提供对postgresql、mysql和sqlite的支持。

数据库适合与任何异步web框架集成,例如StarletteSanicResponderQuartaiohttpTornadoFastAPIBocadillo

文档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]

驱动程序支持是使用asyncpgaiomysqlaiosqlite之一提供的。


快速启动

对于本例,我们将创建一个非常简单的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代码。在英国布莱顿设计和制造。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
分离实体上的java JPA merge()在其存在时进行插入   java Android Javamail自定义身份验证   java如何找出EAR包中执行的第一个文件   sockets Java:如何重用SocketChannel   java通过MQTT和ssl连接安卓设备   java如何修复控制台中的“未知命令”错误?   java为多线程FizzBuzz编写测试用例   java解析findBy中的嵌套对象属性   异常Java:在这种特殊情况下,如何处理ConcurrentModificationException?   从java教科书中绘制图形   java找不到类型为com的响应对象的MessageBodyWriter。太阳运动衫应用程序编程接口。json。JSONWithPadding媒体类型:application/xjavascript   java如何在Android中将光标设置在tableLayout的行/列中所需的位置   Elasticsearch:java。lang.IllegalArgumentException:在docker容器上运行时不允许自我抑制   如何在Java中继承此方法?   java为什么我的消息消费者不接收所有其他消息?   java为什么@ApplicationScoped bean在CDI扩展的关闭前阶段有一个新实例?