📅  最后修改于: 2020-11-27 07:32:17             🧑  作者: Mango
在上一章中,我们讨论了有关SQLAlchemy中的表达语言。现在,让我们继续进行连接数据库所涉及的步骤。
Engine类将Pool和Dialect连接在一起,以提供数据库连接性和行为的来源。使用create_engine()函数实例化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-API , URL字符串采用以下形式-
dialect[+driver]://user:password@host/dbname
例如,如果您将PyMySQL驱动程序与MySQL一起使用,请使用以下命令-
mysql+pymysql://:@/
echo标志是设置SQLAlchemy日志记录的快捷方式,这是通过Python的标准日志记录模块完成的。在随后的章节中,我们将学习所有生成的SQL。要隐藏详细输出,请将echo属性设置为None 。 create_engine()函数的其他参数可能是方言特定的。
create_engine()函数返回Engine对象。引擎类的一些重要方法是-
Sr.No. | Method & Description |
---|---|
1 |
connect() Returns connection object |
2 |
execute() Executes a SQL statement construct |
3 |
begin() Returns a context manager delivering a Connection with a Transaction established. Upon successful operation, the Transaction is committed, else it is rolled back |
4 |
dispose() Disposes of the connection pool used by the Engine |
5 |
driver() Driver name of the Dialect in use by the Engine |
6 |
table_names() Returns a list of all table names available in the database |
7 |
transaction() Executes the given function within a transaction boundary |