首先,我创建一个会话,如下所示:
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_engine
或 my_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")
Session
有 .get_bind()
方法,在您的情况下将返回您的 Engine
实例。
:sqlalchemy docs
所绑定的“绑定”。Session
的实例,除了以下情况Engine
已明确直接绑定到Session
。Connection
因此您的
example()
函数可以执行以下操作:
def example(session):
print("you created a session!")
engine = session.get_bind()
print("the engine is retrieved from session")