Zeile wird in SqlAlchemy ORM aktualisiert

8

Ich versuche eine Zeile aus der DB zu erhalten, ändere diese Zeile und speichere sie erneut.
Alles mit SqlAlchemy

Mein Code

%Vor%

Leider funktioniert es nicht, weil ich versuche, RowProxy-Objekt zu ändern. Wie kann ich tun, was ich will (laden, ändern und speichern (aktualisieren) Zeile) in SqlAlchemy ORM Weg?

    
mrok 13.01.2013, 19:25
quelle

1 Antwort

13

Ich nehme an, dass Sie die objektrelationale API verwenden möchten. Um also die Zeile in db zu aktualisieren, müssen Sie das zugeordnete Objekt aus dem Tabellendatensatz laden und die Eigenschaft des Objekts aktualisieren.

Siehe Codebeispiel unten. Bitte beachten Sie, dass ich Beispielcode hinzugefügt habe, um ein neues gemapptes Objekt zu erstellen und einen ersten Datensatz in der Tabelle zu erstellen. Außerdem gibt es am Ende einen auskommentierten Code zum Löschen des Datensatzes.

%Vor%

PS SQLAlchemy bietet auch eine SQL Expression API , die es ermöglicht, direkt mit Tabellensätzen zu arbeiten ohne gemappte Objekte zu erstellen. In meiner Praxis verwenden wir Object-Relation-API in den meisten Anwendungen, manchmal verwenden wir die SQL Expressions-API, wenn wir Low-Level-Db-Operationen effizient ausführen müssen, wie das Einfügen oder Aktualisieren von Tausenden von Datensätzen mit einer Abfrage.

Direkte Links zur SQLAlchemy-Dokumentation:

vvladymyrov 14.01.2013, 17:11
quelle

Tags und Links