2014-11-26 13 views
51

Ho tabella users nel mio database MySql. Questa tabella ha campi id, name e age.Come cancellare un record per id in Flask-SQLAlchemy

Come posso cancellare qualche record tramite id?

ora uso il seguente codice:

user = User.query.get(id) 
db.session.delete(user) 
db.session.commit() 

Ma io non voglio fare alcuna query prima operazione di cancellazione. C'è un modo per fare questo? Lo so, posso usare db.engine.execute("delete from users where id=..."), ma mi piacerebbe usare il metodo delete().

Grazie!

risposta

103

È possibile farlo,

User.query.filter_by(id=123).delete()

o

User.query.filter(User.id == 123).delete()

Edit:

Assicurati di impegnarsi per delete() abbiano effetto.

+7

assicuratevi di mettere '' 'db.session .commit() '' 'alla fine. dove il db: '' 'db = SQLAlchemy (app)' '' – Ben

+0

Potete utilizzare IN con questo metodo? – ram4nd

+0

Attenzione: Tale 'delete' non si sovrappone se ci si basa sul collegamento in cascata in python/ORM. Sarà necessario [eseguire prima la query dell'oggetto e quindi eliminare] (https://stackoverflow.com/questions/19243964/sqlalchemy-delete-doesnt-cascade). –

Problemi correlati