所以我试图建立一个数据库,其中的行将经常修改。例如,每隔一小时,我想为数据库的特定部分添加一个数字。因此,如果self.checkmarks
被输入数据库相当于3
,什么是最好的方式来更新这部分的数据库与一个增加的数字,使self.checkmarks
现在等于3, 2
?我试图建立列db.Array
但得到一个属性错误:SQLalchemy数据库列应该包含数据数组的模型是什么?
AttributeError: 'SQLAlchemy' object has no attribute 'Array'
我已经找到了如何更新数据库,但我不知道通过添加到列表中,而不是替换更新的最佳方式。我的方法是如下的,但我不认为append
会起作用,因为该列不能是一个数组:
ven = data.query.filter_by(venid=ven['id']).first()
ven.totalcheckins = ven.totalcheckins.append(ven['stats']['checkinsCount'])
db.session.commit()
提前
您是否熟悉SQLAlchemy(或通用关系数据库)上的[relationships](http://docs.sqlalchemy.org/en/rel_0_7/orm/relationships.html)? –
我在文档中阅读了一些关于它们的内容,但不是真的。这是值得探索尝试和实现这种效果? – zch
是的。在这种情况下,一对多关系正是你想要的。 SQLAlchemy的文档是** excelent **,我建议你先阅读。您会看到,我在第一条评论中发布的链接中解释的第一个案例正是您想要的:您需要为您的“checkmarks”添加一个额外的表,该表与您的父表具有外键关系。当你定义一个涉及两个表的关系时,SQLAlchemy会自动将它映射到一个集合。 –