如何在Flask-SQLAlchemy中按id删除记录

问题描述 投票:78回答:3

我的MySql数据库中有users表。此表有idnameage字段。

如何通过q​​azxswpoi删除一些记录?

现在我使用以下代码:

id

但我不想在删除操作之前进行任何查询。有没有办法做到这一点?我知道,我可以使用user = User.query.get(id) db.session.delete(user) db.session.commit() ,但我想使用db.engine.execute("delete from users where id=...")方法。

谢谢!

python flask sqlalchemy flask-sqlalchemy
3个回答
160
投票

你可以这样做,

delete()

要么

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

确保User.query.filter(User.id == 123).delete()commit生效。


18
投票

只想分享另一种选择:

delete()

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

在此示例中,以下代码应正常工作:

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

2
投票

另一种可能的解决方案,特别是如果要删除批

obj=User.query.filter_by(id=123).one()
session.delete(obj)
session.commit()
© www.soinside.com 2019 - 2024. All rights reserved.