SQLAlchemy 删除所有项目,而不仅仅是第一个

Bli*_*xen 3 python sqlalchemy python-2.7

我正在尝试从我的数据库中删除一些数据记录。我做了级联来删除与数据记录相关的所有内容。我现在的问题是,如果我有多个具有相同名称属性的数据记录并且我想将它们全部删除怎么办。例如,我有 3 个数据记录,其中两个有一个属性name = Max,最后一个有属性name = Peter。我现在如何删除两个 Max?这是我到目前为止得到的代码:

def delete_anw(engine):
    Session = sessionmaker(bind=engine)
    session = Session()
    f = session.query(Anwendung).filter_by(name="Max").first()
    session.delete(f)
    session.commit()
Run Code Online (Sandbox Code Playgroud)

此代码仅删除它找到的第一个查询。我知道这是因为first()但是有没有一种方法all()可以删除所有名称为 Max 的数据记录?

小智 7

只需删除该.first()方法并将删除添加到查询本身

session.query(Anwendung).filter_by(name="Max").delete()
Run Code Online (Sandbox Code Playgroud)

http://docs.sqlalchemy.org/en/latest/orm/query.html#sqlalchemy.orm.query.Query.delete 看看这个以供参考