Flask中的SQLAlchemy:如何“删除...在...哪里”?

2 投票
1 回答
2112 浏览
提问于 2025-04-18 04:07

我有一个叫做 data_column 的表格,下面的代码可以用来选择第一行,其中 data_column.dc_name 等于一个字符串 myNewName:

data_column.query.filter_by(dc_name=myNewName).first()

如果我想要执行一个等效的删除操作(delete from data_column where dc_name = myNewName),我该怎么做呢?

以下这些代码都没有用:

data_column.query.filter_by(dc_name=myNewName).delete() #the delete appears to be ignored
data_column.query.delete().filter_by(dc_name=myNewName) #this tries to delete everything in the table, the filter appears to get ignored

1 个回答

3

因为你正在使用flask-sqlalchemy,所以你需要把它从数据库会话中删除,并且还要提交。下面的代码假设'db'是你的sqlalchemy会话对象。

my_row = data_column.query.filter_by(dc_name=myNewName).first()

# delete the row from db session if it exists
if my_row is not None:
    db.session.delete(my_row)
    db.session.commit()

撰写回答