【发布时间】:2021-12-27 05:30:32
【问题描述】:
我有一个过滤掉用户数据的查询,如果有任何新的更改到达,我必须定期更新
@api.route('/updateUser')
def update_user():
newUpdate = ['ABC-123', 'DCS-344', 'FDC-473','HJG-297']
name = "name1"
user = User.query.filter_by(user = name).all()
# user Ouput: ['ABC-123', 'BCD-23', 'DCS-344']
try:
for i in newUpdate:
data = User(user =name, ID=i)
rows_updated =User.query.filter_by(name=name).update(ID=i))
db.session.add(rows_updated)
db.session.commit()
print("User record updated successfully!")
except:
print("Something went wrong! - Not updated")
目前的输出:
user ID
name1 ABC-123
name1 BCD-233
name1 DCS-344
name2 ABE-113
name2 BCS-776
name3 RTD-445
name3 UTR-554
期望的输出:
user ID
name1 ABC-123
name1 BCD-233
name1 DCS-344
name1 FDC-473 *
name1 HJG-297 *
name2 ABE-113
name2 BCS-776
name3 RTD-445
name3 UTR-554
这里 * 是 name1 的新更新记录,当这个 update_user() 函数触发时,它应该更新 name1 记录。
- 不应删除旧 ID
- 它应该验证数据库中是否存在相同的 ID,如果用户表中没有该 ID,那么这些值应该得到更新。
有人可以帮忙处理上面的代码吗?我已经尝试了很多关于更新值的在线可用资源,但没有找到?我还在学习阶段。
【问题讨论】:
标签: python flask sqlalchemy flask-sqlalchemy