建立连接 - 引擎


欢迎 ORM 和 Core 读者!


每个连接到数据库的 SQLAlchemy 应用程序都需要使用引擎。这个简短的部分适合所有人。


任何 SQLAlchemy 应用程序的开头都是一个名为 发动机。此对象充当与特定数据库连接的中心源,为这些数据库连接提供工厂和称为连接池的保持空间。该引擎通常是仅为特定数据库服务器创建一次的全局对象,并使用 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 中使用它是 sqlite3 标准 SQLite 的库接口。如果省略,SQLAlchemy 将使用默认的 所选特定数据库的 DBAPI


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


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