【python】flask查询更新指定的某一条记录

PackageRecord.query.filter_by(id=package_id).update(json_data) 这段代码的问题在于它不能正确地更新指定的记录。这是因为 update() 方法是 SQLAlchemy 提供的一种批量更新的方法,他通过接收一个字典对象来更新记录。但是在你的代码中,json_data 应该是一个 JSON 字符串,而不是一个字典对象。

为了解决这个问题,你可以尝试通过手动修改对象属性来实现单个记录的更新,或者使用 SQLAlchemy 的 session 对象来更新记录。下面是两种解决方案的示例代码:

  1. 手动修改对象属性进行更新:

    record = PackageRecord.query.filter_by(id=package_id).first()
    if record:
    record.attribute1 = new_value1
    record.attribute2 = new_value2
    # ...
    db.session.commit()

  2. 使用 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_value1new_value2 等是要更新的属性的新值。

相关推荐
马克Markorg2 小时前
常见的向量数据库和具有向量数据库能力的数据库
数据库
冷雨夜中漫步2 小时前
Python快速入门(6)——for/if/while语句
开发语言·经验分享·笔记·python
郝学胜-神的一滴2 小时前
深入解析Python字典的继承关系:从abc模块看设计之美
网络·数据结构·python·程序人生
百锦再2 小时前
Reactive编程入门:Project Reactor 深度指南
前端·javascript·python·react.js·django·前端框架·reactjs
喵手4 小时前
Python爬虫实战:旅游数据采集实战 - 携程&去哪儿酒店机票价格监控完整方案(附CSV导出 + SQLite持久化存储)!
爬虫·python·爬虫实战·零基础python爬虫教学·采集结果csv导出·旅游数据采集·携程/去哪儿酒店机票价格监控
Coder_Boy_4 小时前
技术让开发更轻松的底层矛盾
java·大数据·数据库·人工智能·深度学习
2501_944934734 小时前
高职大数据技术专业,CDA和Python认证优先考哪个?
大数据·开发语言·python
helloworldandy4 小时前
使用Pandas进行数据分析:从数据清洗到可视化
jvm·数据库·python
肖永威6 小时前
macOS环境安装/卸载python实践笔记
笔记·python·macos
TechWJ6 小时前
PyPTO编程范式深度解读:让NPU开发像写Python一样简单
开发语言·python·cann·pypto