相关疑难解决方法(0)

SqlAlchemy(Flask+Postgres):如何仅更新 json 字段的特定属性?

我有一个表,其中一列声明为 json,我需要通过向 json 值添加键值来更新记录。

模型

class User(db.Model):

    __tablename__ = 'users'

    loginId         = db.Column(db.String(128),  nullable=False, primary_key=True)
    _password       = db.Column(db.String(128),  nullable=True)
    views           = db.Column(JSON,         nullable=True)
Run Code Online (Sandbox Code Playgroud)

控制器

@mod_event.route('/view', methods=['POST'])
def view():
    try:
        params = request.json
        loginId = params['dream']['loginId']
        users.update().\
            where(users.c.loginId==loginId).\
            values(views=<query>))
Run Code Online (Sandbox Code Playgroud)

假设当前值为views{'1001' : 1} 如果必须将查询views更新为 -

  • {'1001':2}
  • {'1001':1,'1002':1}

如果我不想先查询该值,请更改并更新回来。

我很难在一个查询中弄清楚如何做到这一点,请帮忙,谢谢!

python postgresql json sqlalchemy flask-sqlalchemy

6
推荐指数
2
解决办法
4748
查看次数

标签 统计

flask-sqlalchemy ×1

json ×1

postgresql ×1

python ×1

sqlalchemy ×1