如何在flask_sqlalchemy中查询ScalarListType

时间:2018-03-31 05:20:54

标签: flask-sqlalchemy sqlalchemy-utils

我想在flask_sqlalchemy中插入一个整数列表作为一列数据类型, 我找到了ScalarListType in the package SQLAlchemy-Utils

from sqlalchemy_utils import ScalarListType 

class Foo():
    id = db.Column(db.Integer, primary_key=True)
    list = db.Column(ScalarListType(int))

我可以通过id:

查询foo
foo = Foo.query.filter(Foo.id==1).first()

然后,foo.list是一个整数列表,如[0, 0, 1, 0]

但是,如何为列表中的索引构建查询?例如。像Foo.list[3]==1

这样的东西

我找不到任何线索,请帮帮我!

1 个答案:

答案 0 :(得分:0)

我不确定ScalarListType是否能够完成您想要的任务 - 看起来它不像是由索引查询而构建的。请参阅the source code here - 它只是一个用逗号分隔值的文本列。

您可能可以使用裸SQL来破解某些内容,但这可能意味着在某处使用LIKE,或者分割gets complicated quickly的字符串。

从长远来看,你可能最好只为这些数据制作一个单独的列。