SQLAlchemy: как проверить наличие в базе данных - PullRequest
1 голос
/ 11 августа 2011

Есть ли лучший способ, чем делать это с помощью sqlalchemy?

def has_keyword(self, kw):
        s = self.sessionmaker()
        return 0 < s.query(Keyword).filter(kw.word == kw.word)

Ответы [ 2 ]

2 голосов
/ 16 августа 2011

Вы можете сделать запрос чуть более оптимальным, добавив .count () в конец

ex: return 0

0 голосов
/ 17 августа 2011

Pythonic. Мне нравится делать это с:

query = session.query(Model).filter( ... )
try:
    model = query.one()
except NoResultFound:
    # it does not exist!
except MultipleResultsFound:
    # there are more than one matching the filter criteria!

Это позволяет, скажем, создавать новую модель, когда она не существует, и предупреждать пользователя, если существует несколько (выберите первую).один и т. д.).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...