SQLite
не поддерживает массивы напрямую. Это только делает Ints, Floats и Text. Смотрите здесь тип, который он поддерживает.
Чтобы выполнить sh то, что вам нужно, вы должны использовать пользовательскую кодировку или использовать FK, то есть создать другую таблицу, где каждый элемент в массиве хранится в виде строки. На мой взгляд, это будет утомительно.
Кроме того, это можно сделать в SQLAlchemy, и вам захочется взглянуть на PickleType :
array = db.Column(db.PickleType(mutable=True))
Пожалуйста обратите внимание, что вам придется использовать параметр mutable=True
, чтобы иметь возможность редактировать столбец. SQLAlchemy обнаружит изменения автоматически, и они будут сохранены, как только вы их подтвердите.
Кроме того, обратите внимание на ScalarListType в SQLAlchemy для сохранения нескольких значений в столбце.
Обновление:
В SqlAlchemy
Вы можете использовать столбец массива .
Например:
class Example(db.Model):
id = db.Column(db.Integer, primary_key=True)
my_array = db.Column(db.ARRAY(db.Integer())
# You can easily find records:
# Example.my_array.contains([1, 2, 3]).all()
# You can use text items of array
# db.Column(db.ARRAY(db.Text())