SQLAlchemy Core - 连接数据库



在上一章中,我们讨论了 SQLAlchemy 中的表达式语言。现在让我们继续讨论连接数据库所涉及的步骤。

Engine 类将连接池和方言组合在一起,以提供数据库连接和行为的来源。Engine 类的对象使用create_engine()函数实例化。

create_engine() 函数将数据库作为参数。无需在任何地方定义数据库。标准调用表单必须将 URL 作为第一个位置参数发送,通常是一个字符串,指示数据库方言和连接参数。使用下面给出的代码,我们可以创建一个数据库。

>>> from sqlalchemy import create_engine
>>> engine = create_engine('sqlite:///college.db', echo = True)

对于MySQL 数据库,使用以下命令:

engine = create_engine("mysql://user:pwd@localhost/college",echo = True)

为了明确指定用于连接的DB-APIURL 字符串采用以下形式:

dialect[+driver]://user:password@host/dbname

例如,如果您使用PyMySQL 驱动程序与 MySQL,请使用以下命令:

mysql+pymysql://<username>:<password>@<host>/<dbname>

echo 标志是设置 SQLAlchemy 日志记录的快捷方式,这是通过 Python 的标准日志记录模块完成的。在后续章节中,我们将学习所有生成的 SQL。要隐藏详细输出,请将 echo 属性设置为None。create_engine() 函数的其他参数可能是特定于方言的。

create_engine() 函数返回一个Engine 对象。Engine 类的一些重要方法是:

序号 方法和描述
1

connect()

返回连接对象

2

execute()

执行 SQL 语句构造

3

begin()

返回一个上下文管理器,提供一个已建立事务的连接。操作成功后,提交事务,否则回滚事务

4

dispose()

释放 Engine 使用的连接池

5

driver()

Engine 使用的方言的驱动程序名称

6

table_names()

返回数据库中所有表名的列表

7

transaction()

在事务边界内执行给定函数

广告