id
のようなものでSQLAlchemyデータベースをクエリする必要があります
User.query.filter_by(username = 'peter')
しかし、ID。どうすればいいですか? [Googleで検索してSOは助けにならなかった]
クエリには、IDによるクエリをサポートする get function があります。
たとえば、IDが23のオブジェクトを照会するには:User.query.get(23)
次のようにid = 1のユーザーをクエリできます
session.query(User).get(1)
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')>
transaction(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',)