在sqlalchemy中何时使用' session_maker '和何时使用' Session '



Sqlalchemy的文档说明可以通过两种方式创建会话:

from sqlalchemy.orm import Session
session = Session(engine)

或使用sessionmaker

from sqlalchemy.orm import session_maker
Session = session_maker(engine)
session = Session()

现在,无论哪种情况,都需要一个全局对象(引擎或session_maker对象)。所以我真的不明白session_maker的意义是什么。也许我误解了什么。

我找不到任何建议,当一个人应该使用一个或另一个。所以问题是:在哪种情况下你想使用Session(engine),在哪种情况下你更喜欢session_maker?

文档很好地描述了差异:

Session是一个普通的Python类,可以直接实例化。然而,为了标准化会话的配置和获取方式,sessionmaker类通常用于创建一个顶级会话配置,然后可以在整个应用程序中使用该配置,而无需重复配置参数。

最新更新