AttributeError: "Flask" object has no attribute "login_manager" - Login_Manager

I have a problem with Login_manager in my application. The error is here.

def authenticate(form):
    if form.validate_on_submit():
        try:
            user = session.query(User).filter(User.email == form.email.data).first()
        except :# models.DoesNotExist:
            flash("Your email or password does not match !", "error")
        else :
            if check_password_hash(user.password,form.password.data):
                login_user(user)
                flash("You've been logged in", "success")
                return redirect(url_for('index'))
            else :
                flash("Your email or password does not match !", "error")
    return render_template('login.html',form = form)  

      

The problem arises when

login_user (user)

my login_manager is configured below authorization as follows.

if __name__ == '__main__':

    app.secret_key = 'Innalhamdulillah.nahmaduhu.taalanastainubihi.wanastagfiruh!'
    app.run(debug = DEBUG, host=HOST, port= PORT)

    login_manager = LoginManager()
    login_manager.init_app(app)
    login_manager.login_view = 'login'

    @login_manager.user_loader
    def load_user(userid):
        try:
            return session.query(User).filter(User.id == userid).first()
        except models.DoesNotExist :
            return None

      

and in my declaration

from flask.ext.login import LoginManager,login_user

      

How can I solve this problem and what is the reason? How can I better understand this? I suspected my def load_user(userid):

bcos, I am not very clear and this is my first. Any help would be appreciated.

+3


source to share


1 answer


You start your application before initializing LoginManager. Thus, you should have:



app.secret_key = 'xxxxyyyyyzzzzz'

login_manager = LoginManager()
login_manager.init_app(app)
login_manager.login_view = 'login'

app.run(debug = DEBUG, host=HOST, port= PORT)

      

+10


source







All Articles