Ich habe eine users
Tabelle in meiner MySQL-Datenbank. Diese Tabelle hat id
, name
und age
Felder.
Wie kann ich einen Datensatz von löschen id
?
Jetzt benutze ich folgenden Code:
user = User.query.get(id)
db.session.delete(user)
db.session.commit()
Ich möchte jedoch vor dem Löschvorgang keine Abfrage durchführen. Gibt es eine Möglichkeit, dies zu tun? Ich weiß, ich kann verwenden db.engine.execute("delete from users where id=...")
, aber ich möchte delete()
Methode verwenden.
python
flask
sqlalchemy
flask-sqlalchemy
Sergey
quelle
quelle
db.session.commit()
am Ende setzen. wo die db:db = SQLAlchemy(app)
delete
wird nicht kaskadiert, wenn Sie sich auf die Kaskadierung in Python / ORM verlassen. Sie müssen das Objekt zuerst abfragen und dann löschen .User
es nicht existiert?Ich möchte nur eine andere Option teilen:
http://docs.sqlalchemy.org/en/latest/orm/session_basics.html#deleting
In diesem Beispiel müssen die folgenden Codes einwandfrei funktionieren:
quelle
Eine weitere mögliche Lösung, insbesondere wenn Sie einen Stapel löschen möchten
quelle