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

相关推荐
淬炼之火5 分钟前
基于pycharm和anaconda的yolo简单部署测试
python·深度学习·yolo·pycharm·ultralytics
江湖人称小鱼哥10 分钟前
Prisma 命令安全指南
数据库·安全·prisma
Gauss松鼠会16 分钟前
【openGauss】1分钟掌握:openGauss活动会话CPU占用率获取
数据库·database·opengauss
麦麦大数据31 分钟前
F024 CNN+vue+flask电影推荐系统vue+python+mysql+CNN实现
vue.js·python·cnn·flask·推荐算法
豆沙沙包?34 分钟前
2025年--Lc182--sql(排序和分组)--Java版
java·数据库·sql
Zzz 小生36 分钟前
编程基础学习(一)-Python基础语法+数据结构+面向对象全解析
开发语言·python
white-persist36 分钟前
JWT 漏洞全解析:从原理到实战
前端·网络·python·安全·web安全·网络安全·系统安全
CryptoRzz1 小时前
欧美(美股、加拿大股票、墨西哥股票)股票数据接口文档
java·服务器·开发语言·数据库·区块链
久未1 小时前
Pytorch autoload机制自动加载树外扩展(Autoload Device Extension)
人工智能·pytorch·python
java1234_小锋1 小时前
TensorFlow2 Python深度学习 - TensorFlow2框架入门 - 使用Keras.Model来定义模型
python·深度学习·tensorflow·tensorflow2