建立连接 - 引擎

欢迎 ORM 和 Core 的读者!

每个连接到数据库的 SQLAlchemy 应用程序都需要使用 Engine。这个简短的章节适用于所有人。

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

在本教程中,我们将使用仅在内存中的 SQLite 数据库。这是一种轻松测试方法,无需预先设置实际的数据库。 Engine 是通过使用 create_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 用法中,它是 SQLite 的 sqlite3 标准库接口。 如果省略,SQLAlchemy 将使用所选特定数据库的默认 DBAPI

  3. 我们如何定位数据库? 在这种情况下,我们的 URL 包括短语 /:memory:,它是 sqlite3 模块的指示符,表明我们将使用仅在内存中的数据库。 这种数据库非常适合实验,因为它不需要任何服务器,也不需要创建新文件。

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