Python SqlAlchemy:引擎和连接管理

Python SqlAlchemy:引擎和连接管理,python,sqlalchemy,Python,Sqlalchemy,这两项工作: sel = select([self.tbl]) rec = self.engine.execute(sel) 及 潜在的差异是什么?根据: 关于connect() 该引擎可直接用于向数据库发出SQL。最通用的方法是首先获取连接资源,通过Engine.connect()方法获取: 连接是连接的一个实例,它是一个代理对象 对于实际的DBAPI连接。从中检索DBAPI连接 在创建连接的点上的连接池 关于execute() 可以使用引擎本身的execute()方法以简捷的方式执

这两项工作:

sel = select([self.tbl])
rec = self.engine.execute(sel)

潜在的差异是什么?

根据:

  • 关于
    connect()
该引擎可直接用于向数据库发出SQL。最通用的方法是首先获取连接资源,通过Engine.connect()方法获取:

连接是连接的一个实例,它是一个代理对象 对于实际的DBAPI连接。从中检索DBAPI连接 在创建连接的点上的连接池

  • 关于
    execute()
可以使用引擎本身的execute()方法以简捷的方式执行上述过程:

其中,execute()方法在其上获取一个新连接 own,执行语句 使用该对象,并返回ResultProxy。在这种情况下 ResultProxy包含一个称为close_with_result的特殊标志,该标志 指示当其基础DBAPI游标关闭时 连接对象本身也被关闭,这将再次返回DBAPI 连接到连接池,释放事务资源

根据:

  • 关于
    connect()
该引擎可直接用于向数据库发出SQL。最通用的方法是首先获取连接资源,通过Engine.connect()方法获取:

连接是连接的一个实例,它是一个代理对象 对于实际的DBAPI连接。从中检索DBAPI连接 在创建连接的点上的连接池

  • 关于
    execute()
可以使用引擎本身的execute()方法以简捷的方式执行上述过程:

其中,execute()方法在其上获取一个新连接 own,执行语句 使用该对象,并返回ResultProxy。在这种情况下 ResultProxy包含一个称为close_with_result的特殊标志,该标志 指示当其基础DBAPI游标关闭时 连接对象本身也被关闭,这将再次返回DBAPI 连接到连接池,释放事务资源

sel = select([self.tbl])
conn = self.engine.connect()
rec = conn.execute(sel)
connection = engine.connect()
result = connection.execute("select username from users")
for row in result:
    print("username:", row['username'])
connection.close()
result = engine.execute("select username from users") for row in result:
    print("username:", row['username'])