是否有可能从sql炼金术会话中检索引擎值

时间:2019-01-16 13:13:07

标签: python sqlalchemy

首先,我创建一个会话,如下所示:

from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker
some_engine = create_engine('my_engine_string')
Session = sessionmaker(bind=some_engine)
session = Session()

然后我将此会话作为参数发送给方法

def example(session):
    print("you created a session!")

是否可以在some_engine方法中从session获取example的值?而不实际将some_enginemy_engine_string传递给example方法。

以下内容:

def example(session):
   print("you created a session!")
   engine = <using session get the value of `some_engine`>
   print("the engine is retrieved from session")

1 个答案:

答案 0 :(得分:1)

Session具有.get_bind()方法,在您的情况下,该方法将返回您的Engine实例。

  

返回绑定此Session的“绑定”。

     

“绑定”通常是Engine的实例,除非   Session已直接绑定到Connection

因此,您的example()函数可以执行以下操作:

def example(session):
   print("you created a session!")
   engine = session.get_bind()
   print("the engine is retrieved from session")