我在不是Web應用程序的項目中使用SQLAlchemy。它是一個服務器應用程序,它從數據庫中加載許多不同的對象並在本地修改它們,但不希望每次發出提交時都將這些更新保存到數據庫中。我以前曾在Django ORM中爲一些Web項目工作,並發現它更適合我嘗試實現的目標。在Django ORM中,我可以每當需要時將每個對象保存(),而不保存其他我可能不想保存的內容。我明白爲什麼它在SQLAlchemy中像這樣工作,但我想知道如何以類似Django的方式執行此操作?在SQLAlchemy中禁用提交對象更改
更新: 爲了更容易理解我想要實現的,我會爲您提供一個例子。
這是它實際上是如何工作的:
a = MyModel.query.get(1)
b = MyModel.query.get(1)
a.somefield = 1
b.somefield = 2
# this will save both of changed models
session.commit()
這是我想要的工作:
a = MyModel.query.get(1)
b = MyModel.query.get(1)
a.somefield = 1
b.somefield = 2
a.save()
# I didn't want to save b, changes of b weren't committed
我想有什麼實際保存更大的控制權。我想每5分鐘左右保存每個對象的更改。
找到了自己的解決方案?如果你有請分享。 – 2012-07-28 06:47:22