2017-06-11 177 views
0

我正在使用金字塔框架與BD postgres,我做了登錄,但我有以下錯誤」屬性錯誤:類型對象「客戶端」沒有屬性「得到「」。「屬性錯誤:類型對象「客戶端」沒有屬性「get

@view_config(ROUTE_NAME = '登錄',渲染= '模板/ 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 {} 

回答

1

錯誤描述的問題。這條線的問題是:

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

對象Client不具有get的屬性。對不起,我不知道該對象可能基於提供的信息。

我建議通過官方金字塔SQLAlchemy + URL dispatch wiki tutorial工作。雖然它將SQLite用於數據庫,但這些概念也適用於Postgres。身份驗證步驟也針對您的特定問題提供了相關詳細信息。

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)) 
相關問題