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

相关推荐
weixin_30777913几秒前
OCR图片文本提取代码
图像处理·python·opencv·自动化·ocr
ZC跨境爬虫1 分钟前
模块化烹饪小程序开发日记 Day3:(Flask后端初始化、数据库配置与自定义日志系统搭建)
前端·javascript·数据库·后端·python·flask
格林黄2 分钟前
语音电子病历python_websocket实现
开发语言·python·websocket
JavaEdge.2 分钟前
07-LangChain Toolkit 实战:从工具函数到 Python Agent,再到 SQL Agent
python·sql·langchain
追梦开发者3 分钟前
MongoDB 踩坑实录③:写操作、事务、聚合,踩一个就是线上事故
数据库·mongodb
星梦清河8 分钟前
微服务-Redis高级
数据库·redis·缓存
zhangchengjava11 分钟前
Redis 连接问题完整解决报告
数据库·redis·缓存
Chase_______15 分钟前
【Java杂项】为什么 b += 1 可以,但 b = b + 1 会报错?类型提升与复合赋值详解
java·开发语言·python
Wiktok17 分钟前
【Wit智慧引擎】亲测可用国内pytorch镜像
人工智能·pytorch·python
high201117 分钟前
【架构】-- Mysql delete vs truncate 深度解析
数据库·mysql·架构