是否可以从 sql alchemy 会话中检索引擎值

问题描述 投票:0回答:1

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

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")
python sqlalchemy
1个回答
59
投票

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")
© www.soinside.com 2019 - 2024. All rights reserved.