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

相关推荐
2401_841495645 分钟前
【自然语言处理】中文文本字频统计与交互式可视化工具
人工智能·python·自然语言处理·多线程·分块读取·文本分析·字频统计
cui_win5 分钟前
Redis 生产环境命令管控规范
数据库·redis·缓存
wang6021252187 分钟前
FastAPI的异步开发-Asyncio
python·fastapi·asyncio
AI视觉网奇9 分钟前
Meta-Llama-3.1-8B-bnb-4bit 下载加载
linux·开发语言·python
woshilys9 分钟前
oracle 和sql server 查询数据时锁的区别
数据库·oracle
if时光重来9 分钟前
kingbase数据库指定数据表自增id重置
数据库·python·sql
赵谨言10 分钟前
基于OpenCV的人脸五官识别系统研究
大数据·开发语言·经验分享·python
jingyucsdn12 分钟前
将postgresql结构和数据备份成sql语句
数据库·sql·postgresql
我科绝伦(Huanhuan Zhou)14 分钟前
Oracle等待事件:性能诊断与优化的核心指南
数据库·oracle