Как запросить набор объектов и вернуть набор специфичных для объекта атрибутов в SQLachemy / Elixir? - PullRequest
0 голосов
/ 21 июля 2009

Предположим, у меня есть таблица типа:

class Ticker(Entity):
    ticker = Field(String(7))
    tsdata = OneToMany('TimeSeriesData')
    staticdata = OneToMany('StaticData')

Как бы я запросил его, чтобы он возвращал набор Ticker.ticker?

Я копаюсь в документе и, похоже, select() - это путь. Однако я не слишком знаком с синтаксисом sqlalchemy. Любая помощь приветствуется.

ДОБАВЛЕНО: Моя конечная цель - иметь набор текущего тикера, чтобы, когда нового тикера не было в наборе, он был добавлен в базу данных. Я только учусь создавать базу данных и sql в целом. Любая мысль ценится.

Спасибо. :)

1 Ответ

0 голосов
/ 21 июля 2009

Не знаю точно, что вы ищете, но чтобы получить массив со всеми значениями 'Ticker.ticker', вы должны сделать это:

[instance.ticker for instance in Ticker.query.all()]

Что вам действительно нужно, так это, вероятно, Elixir: руководство по началу работы - это хорошо, так что посмотрите!

ОБНОВЛЕНИЕ 1: поскольку у вас есть база данных, лучший способ выяснить, нужно ли вставлять новый потенциальный тикер или нет, - это запросить базу данных. Это будет намного быстрее, чем чтение всех тикеров в память и проверка. Чтобы увидеть, есть ли значение или нет, попробуйте это:

Ticker.query.filter_by(ticker=new_ticker_value).first()

Если результат None, у вас его еще нет. Так что все вместе,

if Ticker.query.filter_by(ticker=new_ticker_value).first() is None:
    Ticker(ticker=new_ticker_value)
    session.commit()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...