SQLAlchemy - загрузка пользователя по имени пользователя - PullRequest
3 голосов
/ 16 января 2011

Просто ныряю в пилоны и пытаюсь разобраться с основами SQLALchemy.Я понял, как загрузить запись по идентификатору:

user_q = session.query(model.User)
user = user_q.get(user_id)

Но как мне выполнить запрос по определенному полю (то есть имени пользователя)?Я предполагаю, что есть быстрый способ сделать это с моделью, а не создавать запрос вручную.Я думаю, что он имеет что-то с функцией add_column() для объекта запроса, но я не могу понять, как его использовать.Я пробовал подобные вещи, но, очевидно, это не работает:

user_q = meta.Session.query(model.User).add_column('username'=user_name)
user = user_q.get()

1 Ответ

3 голосов
/ 16 января 2011

Я полагаю, вы хотите что-то вроде этого:

user = meta.Session.query(model.User).filter_by(name=user_name).first()

Что коротко для этого:

user = meta.Session.query(model.User).filter(model.User.name=user_name).first()

Вот еще документация

Если вы измените first() на one(), возникнет исключение, если пользователя нет (если вы хотите подтвердить, что он существует).

Я настоятельно рекомендую прочитать как Учебник по объектным реляциям , так и Учебник по языку выражений SQL .

...