Flask中的SQLAlchemy:如何“删除...在...哪里”?
我有一个叫做 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()