2017-07-02 44 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

非常感谢!这工作。 –