AttributeError:'str'对象没有属性'is_active'

问题描述 投票:-1回答:1

在我的应用程序中,我试图使用flask-login添加用户身份验证。我收到错误AttributeError:'str'对象没有属性'is_active'。我已经引用了一些链接PYTHON - Flask : 'User' object has no attribute 'is_active'并尝试了该方法。它不起作用。models.py

from flask_login import UserMixin
from app import login_manager

class Login(db.Model,UserMixin):
    "Creates username and password"
    id = db.Column(db.Integer,primary_key=True,nullable=False)
    username = db.Column(db.String,nullable=False)
    password = db.Column(db.String,nullable=False)


@login_manager.user_loader
def load_user(user_id):
    return Login.query.get(int(user_id))

我的routes.py

def validate(username):
    "Validate the username and passowrd"
    exists = db.session.query(db.exists().where(Login.username == username)).scalar()        
    print(exists)
    return exists


def password_validate(password):
    "Validate the username and passowrd"
    exists = db.session.query(db.exists().where(Login.password == password)).scalar() 

    return exists

@app.route('/login', methods=['GET', 'POST'])
def login():
    error = None  
    if request.method == 'GET':
        return render_template('login.html', error=error)          
    if request.method == 'POST':
        username = request.form.get('username')
        password = request.form.get('password')
        data = {'username':username,'password':password}
        completion = validate(username)
        if completion ==False:
            print("I am first false")
            error = 'error.'
        else:
            print("I am first else")
            password_check = password_validate(password)
            if password_check ==False:
                print("I am second if")
                error = 'error.'
            else:
                print("I am second else")
                login_user(username)
                error = 'Success'
        api_response = {'data':data,'error':error}
        return jsonify(api_response)

我的app.py

from flask_login import LoginManager
login_manager = LoginManager()
login_manager.init_app(app)

但是我还面临另一个问题Unable to import flask-login error in from flask_login import LoginManager

python flask flask-login
1个回答
0
投票

我已将routes.py中else条件内的行包括在内>

user = Login()
user.name=username
user.password=password
print("I am second else")
login_user(user)
error = 'Success'

以及也在models.py

@login_manager.user_loader
def load_user(user_id):
    user = Login()
    user.id = Login.id
    user.username = Login.username
    user.password = Login.password
    return user
© www.soinside.com 2019 - 2024. All rights reserved.