建立连接 - 引擎

欢迎 ORM 和 Core 阅读者!

每个连接到数据库的 SQLAlchemy 应用程序都需要使用一个 Engine。本节内容适用于所有用户。

任何 SQLAlchemy 应用程序的起点都是一个名为 Engine 的对象。此对象充当特定数据库连接的中心来源,提供连接工厂以及一个名为 连接池 的连接存放空间。引擎通常是一个全局对象,对于特定的数据库服务器仅创建一次,并使用 URL 字符串进行配置,该字符串描述了如何连接到数据库主机或后端。

在本教程中,我们将使用一个纯内存 SQLite 数据库。这种方法非常方便,因为无需设置实际存在的数据库即可进行测试。使用 create_engine() 函数创建 Engine

>>> from sqlalchemy import create_engine
>>> engine = create_engine("sqlite+pysqlite:///:memory:", echo=True)

create_engine 的主要参数是字符串 URL,上面以字符串 "sqlite+pysqlite:///:memory:" 传递。此字符串告诉 Engine 三个重要的事实

  1. 我们正在与什么类型的数据库通信?这是上面的 sqlite 部分,它在 SQLAlchemy 中链接到一个称为 方言 的对象。

  2. 我们正在使用哪个 DBAPI?Python DBAPI 是一个第三方驱动程序,SQLAlchemy 使用它与特定数据库进行交互。在本例中,我们使用的是名称 pysqlite,在现代 Python 使用中,它是 sqlite3 用于 SQLite 的标准库接口。如果省略,SQLAlchemy 将为所选的特定数据库使用默认的 DBAPI

  3. 我们如何定位数据库?在本例中,我们的 URL 包含短语 /:memory:,它指示 sqlite3 模块我们将使用一个**纯内存**数据库。这种类型的数据库非常适合实验,因为它不需要任何服务器,也不需要创建新文件。

我们还指定了一个参数 create_engine.echo,它将指示 Engine 将其发出的所有 SQL 日志记录到一个 Python 日志记录器,该记录器将写入标准输出。此标志是设置 Python 日志记录更正式的方式 的简写方式,对于脚本中的实验很有用。许多 SQL 示例将在 [SQL] 链接下方包含此 SQL 日志输出,单击链接将显示完整的 SQL 交互。