update one datatypes binds basequery python flask sqlalchemy flask-sqlalchemy

python - one - Cómo eliminar un registro por id en Flask-SQLAlchemy



model sqlalchemy (3)

Otra posible solución, especialmente si desea eliminar por lotes

deleted_objects = User.__table__.delete().where(User.id.in_([1, 2, 3])) session.execute(deleted_objects) session.commit()

Tengo una tabla de users en mi base de datos MySql. Esta tabla tiene campos de id , name y age .

¿Cómo puedo eliminar algún registro por id ?

Ahora uso el siguiente código:

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

Pero no quiero hacer ninguna consulta antes de eliminar la operación. ¿Hay alguna forma de hacer esto? Lo sé, puedo usar db.engine.execute("delete from users where id=...") , pero me gustaría usar el método delete() .


Puedes hacerlo,

# mark two objects to be deleted session.delete(obj1) session.delete(obj2) # commit (or flush) session.commit()

o

obj = User.query.filter_by(id=123).one() session.delete(obj) session.commit()

Asegúrese de commit que delete() surta efecto.


Solo quiero compartir otra opción:

deleted_objects = User.__table__.delete().where(User.id.in_([1, 2, 3])) session.execute(deleted_objects) session.commit()

http://docs.sqlalchemy.org/en/latest/orm/session_basics.html#deleting

En este ejemplo, los siguientes códigos funcionarán bien:

obj = User.query.filter_by(id=123).one() session.delete(obj) session.commit()