使用sqlalchemy为实体创建了JSON或JSONB类型的字段:
class User(db.Model):
id = db.Column(db.Integer, primary_key=True)
data = db.Column(db.JSON)
def __init__(self, data):
self.data = data
为User表创建新的记录并写入数据库:
user = User({"country":"Sri Lanka"})
db.session.add(user)
db.session.commit()
使用以下代码无法更新json结构的键值对:
user = User.query.first()
user.data["province"] = "south"
db.session.add(user)
db.session.commit()
需要使用“flag_modified”方法才能够更新:
from sqlalchemy.orm.attributes import flag_modified
user = User.query.first()
user.data["province"] = "south"
flag_modified(user, "data")
db.session.add(user)
db.session.commit()
stackoverflow.com/questions/6…
stackoverflow.com/questions/3…
bashelton.com/2014/03/upd…