Flasksqlalchemy不更新行

我将 Flask-SQLAlchemy 与本地托管的 postgresql 一起使用,我有这段代码,我应该在用户登录后更新数据库中的用户数据

    user_id = current_user.get_id()
    print(f"nn user_id: {user_id}nn") #1--->
    x = users.query.filter_by(id=user_id).first()
    x.sid = request.sid
    db.session.commit()
    print(f'nn user_object.sid:{x.sid} , request.sid:{request.sid}  nn') #2 --->

#1 : userid:1

#2 : x.sid:QKfGvdsL-HGUM-FHHYF, request.sid:QKfGvdsL-HGUM-FHHYF

但是当我查看 pgadmin4 或稍后请求 x.sid 的值时,它总是“空”

我四处看了看,每个人似乎都以与我编写代码的方式相同的方式建议。

值得一提 :

  1. sid column 已使用flask.migrate 添加,尚未与表一起创建。
  2. 只是为了确保我的代码中没有任何内容覆盖值后缀,pgadmin4 将空值覆盖为唯一的内容并保持不变,其值没有发生任何变化。
  3. 我尝试使用db.session.add(x)但它一直说数据信息已经存在

回答

你可以试试:

db.session.merge(x)
db.session.commit()

此代码创建一个新行,如果它不存在,则更新现有的行。


以上是Flasksqlalchemy不更新行的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>