【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_value1、new_value2 等是要更新的属性的新值。

相关推荐
甜到心里的蛋糕4 分钟前
AI 生成 MV 音频异响排查:频谱定位、片段替换与 Nginx 缓存
人工智能·python·nginx·ffmpeg·音视频·音频处理
2601_9679801114 分钟前
python中的静态方法和类方法
python·静态方法·类方法·实例化·方法调用
智购科技无人售货机厂家20 分钟前
自动售货机物联网平台为什么会出现在线状态不一致?~YH
python·单片机·嵌入式硬件·django·pygame
飞Link8 小时前
什么是 AirSim?一文读懂无人机仿真平台
python·算法·无人机
曲径海盗9 小时前
【Python 学习第 38 天】for 循环
python·学习笔记·编程入门
在世修行9 小时前
智学文枢:变式题生成引擎
python·ai·pyside·题目生成
znnnk9 小时前
数据库被AI“重写”:2026,从CPU中心走向GPU中心
数据库·人工智能·oracle
微微%10 小时前
mysql的安装和使用
数据库·mysql·mysql8安装
On The Road :11 小时前
Java 多线程详解:从入门到线程安全
java·python·安全
软件派11 小时前
MiniMax M3.1 Flash 高频业务落地实战指南
大数据·数据库·人工智能