2011-01-16 3 views
2

Juste plonger dans les pylônes ici, et j'essaie de comprendre les bases de SQLALchemy. Je l'ai compris comment charger un enregistrement par id:SQLAlchemy - chargement de l'utilisateur par nom d'utilisateur

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

Mais comment puis-je interroger par un champ spécifique (par exemple nom d'utilisateur)? Je suppose qu'il existe un moyen rapide de le faire avec le modèle plutôt que de construire la requête manuellement. Je pense qu'il a quelque chose avec la fonction add_column() sur l'objet de requête, mais je n'arrive pas à comprendre comment l'utiliser. J'ai essayé des trucs comme ça, mais évidemment cela ne fonctionne pas:

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

Répondre

3

Je crois que vous voulez quelque chose comme ceci:

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

Ce qui est court pour cela:

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

Here's more documentation

Si vous changez first() en one() il déclenchera une exception s'il n'y a pas d'utilisateur (si vous voulez affirmer qu'il en existe un).

Je suggère fortement de lire à travers à la fois Object Relational Tutorial ainsi que le et le SQL Expression Language Tutorial.

+0

Génial, merci! – keithjgrant

Questions connexes