python - 属性错误: 'Flask' object has no attribute 'login_manager' -- Login_Manager

标签 python flask

我的应用程序中的 Login_manager 存在问题。错误就在这里抛出

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)  

问题提出于

login_user(用户)

我的login_manager在身份验证下配置如下。

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

在我的声明中

from flask.ext.login import LoginManager,login_user

请问我该如何解决这个问题,原因是什么?我如何更好地理解它?我怀疑我的 def load_user(userid): 因为我不太清楚,这是我的第一次。任何帮助将不胜感激。

最佳答案

您在初始化 LoginManager 之前运行您的应用程序。 所以你应该:

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)

关于python - 属性错误: 'Flask' object has no attribute 'login_manager' -- Login_Manager,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31067249/

相关文章:

java - 每个 python 对象一个 int

python - sdap​​s安装给出pycairo位置错误

python - 长类名的最佳命名约定是什么?

python - Flask:单元测试时,request.authorization 始终为 None

python - parametrize 中的 pytest 相关参数

python - 如何快速搜索pandas中的重复值?

python - 尝试使用正则表达式在 python 中删除字符 EM DASH "—"(—)

javascript - 尝试在 Flask 应用程序内提供安全脚本

python - Azure 应用服务无法在嵌套文件夹中找到 Flask 应用程序。即使有 GUnicorn

python - 使用 Docker 和 Flask 进行机器学习的性能问题