2017-07-02 32 views
0

我正在一個web應用程序,我已經得到了下面的代碼(編輯爲簡潔起見)使用燒瓶登錄到在處理日誌記錄:瓶找不到用戶對象

from flask_login import LoginManager, login_user, logout_user, login_required 

login_manager = LoginManager() 
login_manager.init_app(app) 

@login_manager.user_loader 
def load_user(user_id): 
    return User.query.filter_by(user_id=user_id).first() 

@app.route('/') 
@login_required 
def home(): 
     return user.first_name 

@app.route("/login", methods=["GET", "POST"]) 
def login(): 
    if request.method == "POST": 
     try: 
      email = request.form.get("email") 
      user = User.query.filter(User.email == email).first() 
      if user.is_correct_password(request.form.get("password")): 
       login_user(user) 
       return redirect(url_for("home")) 
      else: 
       return error("Login Failed") 
     except: 
      return error("Unable to log in.") 

    else: 
     return render_template("login.html") 

然而,我繼續獲得NameError: global name 'user' is not defined,即使我確定我已經定義了user,因爲我能夠通過@login_required。 (當我註銷並嘗試進入主頁時,我被告知我未被授權)。

我很感激任何幫助,我可以得到。

由於一噸!

回答

2

您的home視圖存在問題:user未定義。我想你打算使用Flask-Login的current_user

from flask_login import current_user 

# ... 

@app.route('/') 
@login_required 
def home(): 
    return current_user.first_name 
+0

非常感謝!這工作。 –