Использование списка в качестве типа данных в столбце (SQLAlchemy)
Я хочу сохранить список rss-каналов в sqlite db. Я использую SQLAlchemy и задавался вопросом, как их хранить. Кажется, я не могу найти документацию о списках и задавался вопросом, было ли это законно для столбца: Столбец ('rss_feed_urls', List)
Или есть тип массива, который я мог бы использовать?
Ответы
Ответ 1
Если вы действительно должны использовать PickleType. Но, возможно, вам нужна другая таблица (которая состоит из списка строк, правильно?). Просто создайте таблицу для хранения ваших RSS-каналов:
class RssFeed(Base):
__tablename__ = 'rssfeeds'
id = Column(Integer, primary_key=True)
url = Column(String)
Добавить новые URL:
feed = RssFeed(url='http://url/for/feed')
session.add(feed)
Получить список URL-адресов:
session.query(RssFeed).all()
Найдите определенный поток по индексу:
session.query(RssFeed).get(1)
Я бы рекомендовал SQLAlchemy Object Relational Tutorial.
Ответ 2
Как правило, нет списка среди типов данных столбцов базы данных SQL.
Одним из способов хранения списка в качестве значения столбца является преобразование этого списка в строку, которая будет сопоставляться с типом данных базы данных varchar
.
Другой способ - преобразовать список в сериализованное двоичное представление (например, используя pickle) и сохранить значение как значение базы данных типа blob
.