我的登录控制器不起作用。提取用户名时出现问题

时间:2010-04-17 17:49:32

标签: sqlalchemy pylons

目前我的登录控制器无法正常工作,因为我似乎无法获取用户名和密码。

我目前正在使用这样的东西:

form_username = str(request.params.get('username'))

db_user = meta.Session.query(User).filter_by(username=form_username)
if db_user is None:
    return redirect('auth/error')

无论使用哪个用户名,db_user始终返回True,因此永远不会进入auth / error。我使用shell来玩这个,我可以与数据库建立连接,所以我不确定我在这里做错了什么。

1 个答案:

答案 0 :(得分:2)

你走在正确的轨道上;你只需要更进一步。

正如您在上面的评论中提到的,filter_by()会返回一个Query对象 您需要指定要用于实际运行查询的Query对象的哪个方法并返回一些结果。

在这种情况下,我建议first()

db_user = meta.Session.query(User).filter_by(username=form_username).first()

Documentation(我的重点):

  

如果结果不包含任何行,则返回此查询的第一个结果或无。这导致执行基础查询。