属性错误:输入对象"客户端"没有属性"得到

时间:2017-06-11 04:52:49

标签: python postgresql pyramid

我正在使用带有BD postgres的金字塔框架,我正在登录,但是我有以下错误"属性错误:输入对象"客户"没有属性"得到""。"

@view_config(route_name =' login',renderer =' templates / login.pt')

def login(request):
    a = request.params.get('login1')
    contrasenia = request.params.get('password1')
    if request.method == 'POST':
        if a and Client.get(a) == contrasenia:
            headers = remember(request, a)
            return HTTPFound('/', headers=headers)
    return {}

2 个答案:

答案 0 :(得分:1)

错误描述了该问题。这一行是问题所在:

    if a and Client.get(a) == contrasenia:

对象Client没有get的属性。对不起,根据提供的信息,我不知道该对象是什么。

我建议通过官方金字塔SQLAlchemy + URL dispatch wiki tutorial。虽然它将SQLite用于数据库,但这些概念也适用于Postgres。身份验证步骤也包含针对您特定问题的相关详细信息。

答案 1 :(得分:0)

如果我猜对了,你可能正在尝试验证用户。

首先恰当地命名你的变量:

email = request.params.get('email')
password = request.params.get('password')

然后通过电子邮件查询客户端(我猜你使用的是SQLAlchemy):

client = Session.query(Client).filter(Client.email == email).first()

如果客户端存在给定的电子邮件,请检查密码哈希值(在网上搜索密码安全性,示例解决方案:Salt and hash a password in python

if client.password_hash == hashing_func(password):
    return HTTPFound('/', headers=remeber(request, client.id))