【发布时间】:2020-03-26 14:35:09
【问题描述】:
这是我的代码的一部分: 我正在尝试删除与条件教师 = 选择的学生匹配的所有行。 现在我知道这个查询是有效的。但是这些行并没有从表中删除?!?!
class Alert(db.Model):
__tablename__ = "alerts"
id = db.Column(db.Integer, primary_key=True)
alert = db.Column(db.String(4096))
CW_class = db.Column(db.String(612))
instructor = db.Column(db.String(612)) #instructor = username !
date = db.Column(db.String(612))
importDate = db.Column(db.String(612))
input = request.form.get('student')
list = input.split('-')
action = list[0]
chosen_student = list[1]
delete_q = Alert.query.filter_by(instructor=chosen_student).delete()
msg = str(delete_q)
db.session.commit
当我运行此代码时,打印 delete_q will output '2',这是正确的:有 2 条记录符合选择条件 (instructor=chosen_student)。但是之后运行选择查询时,不会删除 2 行...
有人知道为什么吗?
【问题讨论】:
-
db.session.commit是一个方法,你需要调用它:db.session.commit() -
啊啊啊啊啊……太简单了!你会相信我为此苦苦挣扎了好几个小时吗?不断更改查询,但完全忽略了那些(简单)括号......非常感谢!
-
不时发生在我们身上!
标签: python mysql flask flask-sqlalchemy