PackageRecord.query.filter_by(id=package_id).update(json_data)
这段代码的问题在于它不能正确地更新指定的记录。这是因为 update()
方法是 SQLAlchemy 提供的一种批量更新的方法,他通过接收一个字典对象来更新记录。但是在你的代码中,json_data
应该是一个 JSON 字符串,而不是一个字典对象。
为了解决这个问题,你可以尝试通过手动修改对象属性来实现单个记录的更新,或者使用 SQLAlchemy 的 session
对象来更新记录。下面是两种解决方案的示例代码:文章来源:https://www.toymoban.com/news/detail-613653.html
- 手动修改对象属性进行更新:
record = PackageRecord.query.filter_by(id=package_id).first()
if record:
record.attribute1 = new_value1
record.attribute2 = new_value2
# ...
db.session.commit()
- 使用
session
对象进行更新:
record = db.session.query(PackageRecord).filter_by(id=package_id).first()
if record:
db.session.query(PackageRecord).filter_by(id=package_id).update(json.loads(json_data))
db.session.commit()
在这两种解决方案中,PackageRecord
是你的数据模型类,db
是你的数据库会话对象,package_id
是要更新的记录的 ID,new_value1
、new_value2
等是要更新的属性的新值。文章来源地址https://www.toymoban.com/news/detail-613653.html
到了这里,关于【python】flask查询更新指定的某一条记录的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!