gpt4 book ai didi

python - 可以在没有显式 session.add() 的情况下将对象添加到 SQLAlchemy session 吗?

转载 作者:太空狗 更新时间:2023-10-30 02:23:25 25 4
gpt4 key购买 nike

我有许多类映射到带有 SQLAlchemy 的表(如果重要的话是非声明式的)。因为我希望应用程序是可单元测试的,所以所有 SQLAlchemy session 交互都被隔离到一个类中。使用该应用程序是这样的:

m = Model("mysql://localhost/mydb")
s1 = Service("somename")
m.session.add(s1)
s1 is m.get_service("somename") # True

它实际上比那更精简,但在这里和我一起工作。

是否可以跳过 session.add() 步骤?换句话说,如果我实例化一个映射类,是否可以将其自动添加到事件的 SQLAlchemy session (如果有)?

最佳答案

在 SQLAlchemy 中,您只能通过将表的元数据绑定(bind)到引擎来对表执行此操作。这不适用于 SQLALchemy 的 ORM 部分。

http://www.sqlalchemy.org/docs/core/schema.html?highlight=metadata#binding-metadata-to-an-engine-or-connection

解决此类问题的一种方法是使用可以在任何地方访问的作用域 session 。

http://www.sqlalchemy.org/docs/orm/session.html?highlight=scoped%20session#sqlalchemy.orm.scoped_session

关于python - 可以在没有显式 session.add() 的情况下将对象添加到 SQLAlchemy session 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4115818/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com