Ich verwende SQLAlchemy im Projekt, das keine Webanwendung ist. Es ist eine Serveranwendung, die die Anzahl der verschiedenen Objekte aus der Datenbank lädt und lokal ändert, aber diese Aktualisierungen nicht jedes Mal in der Datenbank speichern möchte, wenn eine Festschreibung erfolgt. Ich habe vorher für einige Webprojekte mit Django ORM gearbeitet und fand es besser geeignet für das, was ich erreichen möchte. In Django ORM konnte ich jedes Objekt speichern(), wann immer ich wollte, ohne andere Dinge zu speichern, die ich nicht speichern möchte. Ich verstehe, warum es so in SQLAlchemy funktioniert, aber ich frage mich, wie ich das auf Django-ähnliche Weise machen könnte?Deaktivieren Commit-Objekt Änderungen in SQLAlchemy
Update: Um es einfacher zu verstehen, was ich versuche zu erreichen, werde ich Ihnen ein Beispiel geben.
Dies ist, wie es tatsächlich funktioniert:
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()
Dies ist, wie ich es will arbeiten:
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
Ich möchte eine größere Kontrolle darüber, was tatsächlich gespeichert wird. Ich möchte Änderungen jedes Objekts alle 5 Minuten oder so speichern.
Haben Sie eine eigene Lösung gefunden? Wenn Sie haben, teilen Sie bitte. –