Flask-SQLAlchemy不保存数据库更新

时间:2019-04-12 21:51:36

标签: python flask flask-sqlalchemy

我正在尝试将数据导入现有数据库项目。我要为每个数据库项目更新两个字段:字符串类型字段,其名称为imagefolder,而拾取类型(列表)字段,其名称为images。这两个字段的输入值都是存储文件路径的字符串。

我的步骤是查询数据库项,检查其是否存在,然后更新其字段。

blend = Blend.query.filter_by(old_ID=row[4]).first()
if blend:
    blend.imagefolder = "/".join((row[16].split("/")[4:])[:-1])
    blend.images.append(ntpath.basename(row[16]))
    db.session.commit()

当我运行脚本时,什么也没有发生(数据库没有更新),我注意到导入脚本的运行速度实在是太快了,太快了。

1 个答案:

答案 0 :(得分:1)

您错过了将更改的对象添加到当前会话的操作。

并尝试以下代码段。

blend = db.session.query(Blend).filter_by(old_ID=row[4]).first()
if blend:
    blend.imagefolder = "/".join((row[16].split("/")[4:])[:-1])
    blend.images.append(ntpath.basename(row[16]))
    db.session.add(blend)
    db.session.commit()