我正在使用带有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 {}
答案 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))