Sqlalchemy 简明教程
SQLAlchemy Core - Connecting to Database
在上一章中,我们讨论了 SQLAlchemy 中的表达式语言。现在,让我们继续执行连接到数据库的步骤。
引擎类连接一个 Pool and Dialect together 来提供数据库 connectivity and behavior 的源。使用 create_engine() 函数对引擎类的一个对象进行实例化。
create_engine() 函数将数据库作为单个参数。数据库不需要在任何地方进行定义。标准调用形式必须将 URL 作为第一个位置参数进行发送,它通常是一个表示数据库方言和连接参数的字符串。使用下面提供的代码,我们可以创建一个数据库。
>>> from sqlalchemy import create_engine
>>> engine = create_engine('sqlite:///college.db', echo = True)
对于 MySQL database ,使用以下命令−
engine = create_engine("mysql://user:pwd@localhost/college",echo = True)
为了具体指定要用于连接的 DB-API , URL string 需要采用以下形式−
dialect[+driver]://user:password@host/dbname
例如,如果你正在使用 PyMySQL driver with MySQL ,使用以下命令 −
mysql+pymysql://<username>:<password>@<host>/<dbname>
echo flag 是设置 SQLAlchemy 日志记录的一个快捷方式,它是通过 Python 的标准日志记录模块来完成的。在后续章节中,我们将学习所有生成的 SQL。若要隐藏冗余输出,请将 echo 属性设置为 None 。create_engine() 函数的其他参数可能是方言专有的。
create_engine() 函数返回一个 Engine object 。引擎类的某些重要方法是 −
Sr.No. |
Method & Description |
1 |
connect() Returns connection object |
2 |
execute() 执行 SQL 语句构造 |
3 |
begin() 返回一个上下文管理器,提供一个已建立事务的连接。在操作成功时,事务被提交,否则会回滚 |
4 |
dispose() 处理引擎所用的连接池 |
5 |
driver() 引擎正在使用的方言的驱动程序名称 |
6 |
table_names() 返回数据库中所有可用的表名的列表 |
7 |
transaction() 在事务边界内执行已提供函数 |