SQLAlchemy - 按用户名加载用户

时间:2011-01-16 02:48:48

标签: python sqlalchemy pylons

只是潜入这里的挂架,并试图了解SQLALchemy的基础知识。我已经想出了如何通过id加载记录:

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 个答案:

答案 0 :(得分:3)

我相信你想要这样的东西:

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()

Here's more documentation

如果您将first()更改为one(),如果没有用户,则会引发异常(如果您要声明存在的话)。

我强烈建议您同时阅读Object Relational Tutorial以及SQL Expression Language Tutorial