“Flask”对象没有属性“login_manager”

问题描述 投票:0回答:0

请帮忙,当我尝试登录应用程序时,出现以下错误(“Flask”对象没有属性“login_manager”)

我不明白为什么会这样。我重新阅读了类似问题中的问题和答案 - 但它对我不起作用。知道如何解决这个问题。

from flask import Flask, render_template, redirect, request, send_from_directory, flash, url_for
from flask_sqlalchemy import SQLAlchemy
from datetime import datetime
from werkzeug.security import generate_password_hash, check_password_hash
import os
from flask_migrate import Migrate
from flask_login import LoginManager, UserMixin, login_user, logout_user, login_required, current_user

app = Flask(__name__)
basedir = os.path.abspath(os.path.dirname(__file__))
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///' + os.path.join(basedir, 'blog.db')
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
app.config['SECRET_KEY'] = 'hard to guess'
db = SQLAlchemy(app)
migrate = Migrate(app, db)
UPLOAD_FOLDER = 'uploads'
app.config['UPLOAD_FOLDER'] = UPLOAD_FOLDER


def create_app():
    app = Flask(__name__)
    db.init_app(app)

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

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

    return app

.......


@app.route('/login', methods=['GET', 'POST'])
def login_per():
    email = request.form.get('email')
    password = request.form.get('password')
    rm = True if request.form.get('remember') else False

    user = User.query.filter_by(email=email).first()

    if not user or not check_password_hash(user.password, password):
        flash('Please check your login details and try again.')
        return redirect(url_for('login'))

    login_user(user, remember=rm)
    return redirect('/home')
python flask flask-login
© www.soinside.com 2019 - 2024. All rights reserved.