get () иногда отличается от ожидаемого:
, если ваша транзакция была выполнена:
>>> session.query(User).get(1)
[SQL]: BEGIN (implicit)
[SQL]: SELECT user.id AS user_id, user.name AS user_name, user.fullname AS user_fullname
FROM user
WHERE user.id = ?
[SQL]: (1,)
<User(u'ed', u'Ed Jones')>
вы находитесь в транзакции (get () выдаст вам объект результата в памяти без запроса к базе данных):
>>> session.query(User).get(1)
<User(u'ed', u'Ed Jones')>
лучше использовать это:
>>> session.query(User.name).filter(User.id == 1).first()
[SQL]: SELECT user.name AS user_name
FROM user
WHERE user.id = ?
LIMIT ? OFFSET ?
[SQL]: (1, 1, 0)
(u'Edwardo',)