SQLalchemy数据库列应该是什么模型来包含数据数组?

2024-10-01 13:37:48 发布

您现在位置:Python中文网/ 问答频道 /正文

因此,我试图建立一个数据库,其中的行将被频繁修改。例如,每小时我都想在数据库的特定部分添加一个数字。因此,如果self.checkmarks被输入到等于3的数据库中,那么用一个加上的数字来更新数据库的这一部分,使self.checkmarks现在等于3, 2的最佳方法是什么?我尝试将列建立为db.Array,但得到一个属性错误:

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()

非常感谢


Tags: 方法self数据库db属性错误数字array
1条回答
网友
1楼 · 发布于 2024-10-01 13:37:48

如果您真的想在SQLAlchemy中将python列表作为一列,那么您需要查看一下PickleType

array = db.Column(db.PickleType(mutable=True))

请注意,您必须使用mutable=True参数才能编辑列。SQLAlchemy将自动检测更改,并且在您提交更改后将立即保存这些更改。在

如果您希望pickle具有可读性,可以将其与json或其他满足您的目的的转换器结合使用。在

相关问题 更多 >