所以我正在尝试建立一个数据库,其中的行将经常被修改。例如,每小时,我想在数据库的特定部分添加一个数字。因此,如果self.checkmarks
输入数据库等于3
,那么使用添加的数字更新数据库的这一部分的最佳方法是使self.checkmarks
现在等于3, 2
?我尝试将列设置为db.Array
,但是出现了属性错误:
AttributeError:'SQLAlchemy'对象没有属性'Array'
我已经找到了如何更新数据库,但我不知道通过添加到列表而不是替换来更新的最佳方法。我的方法如下,但我不认为append
会起作用,因为列不能是数组:
ven = data.query.filter_by(venid=ven['id']).first()
ven.totalcheckins = ven.totalcheckins.append(ven['stats']['checkinsCount'])
db.session.commit()
非常感谢提前
答案 0 :(得分:6)
如果您真的想在SQLAlchemy中将python列表作为列,那么您需要查看PickleType:
array = db.Column(db.PickleType(mutable=True))
请注意,您必须使用mutable=True
参数才能编辑列。 SQLAlchemy会自动检测更改,并在提交后立即保存。
如果您希望泡菜是人类可读的,您可以将其与json或其他足以满足您目的的转换器结合使用。