2010-07-23 10 views
7

Di consigo una instancia de modelo así:SQL Alchemy: cómo eliminar de una instancia modelo?

instance = session.query(MyModel).filter_by(id=1).first() 

¿Cómo puedo eliminar esa fila? ¿Hay algún método especial para llamar?

+0

Recuerde usar .get (1) en lugar de filter_by (id = 1) .First(), si 'id' es la clave principal! Esto da como resultado menos hits en la base de datos. Lea: http://docs.sqlalchemy.org/en/latest/orm/query.html#sqlalchemy.orm.query.Query.get – MrOerni

Respuesta

18

Ok he encontrado después de una búsqueda adicional:

session.delete(instance) 
+1

+1 Impresionante, gracias – Hubro

+0

Creo que esto es mejor si elimina por id: MyModel.query.filter (MiModelo.id == 123) .delete() Más directo. Ver https://stackoverflow.com/questions/27158573/how-to-delete-a-record-by-id-in-flask-sqlalchemy –

0

que puede disparar una sola consulta para esto.

para todos los registros

db.session.query(Table_name).delete() 
db.session.commit() 

aquí dB es el objeto de clase Frasco SQLAlchemy. Eliminará todos los registros y si desea eliminar registros específicos, intente con cláusula filter_by en la consulta. ex.

valor específico para

db.session.query(Table_name).filter_by(id==123).delete() 
db.session.commit() 
Cuestiones relacionadas