python - AttributeError:“BaseQuery”对象没有属性“is_authenticated”
问题描述
@login_manager.user_loader
def load_user(user_id):
return Users.query.filter_by(id=user_id)
这是我的用户加载器
@app.route('/login', methods=['POST','GET'])
def login():
msg = ''
if request.method == 'POST':
username = request.form['user']
password = request.form['pass']
hashed_password = sha256(password.encode('utf-8')).hexdigest()
user = Users.query.filter_by(username=username).first()
if user:
if user.hashed_password ==hashed_password:
login_user(user, remember=True)
return redirect(url_for('add'))
else:
msg = 'incorrect username or password'
return render_template('login.html',msg=msg)
这是我的登录代码,我不知道这里出了什么问题,但我收到 AttributeError: 'BaseQuery' object has no attribute 'is_authenticated' 错误请帮忙
解决方案
改变:
@login_manager.user_loader
def load_user(user_id):
return Users.query.filter_by(id=user_id)
到:
@login_manager.user_loader
def load_user(user_id):
return Users.query.filter_by(id=user_id).first()
如果您不使用first()
,则返回类型将是 BaseQuery。
推荐阅读
- sql - 如何在更新语句条件中使用计数?
- php - file_get_contents:找不到包装“https”(XAMPP / Windows)
- c# - 如何在 C# 中进行 AES128 解密?
- android - I got this error when google play testing my app
- dart - Can exceptions thrown in dart streams be handled by subscribers without closing the stream?
- arrays - 删除字典数组中重复的月份和年份,然后根据年份和月份将其保存到另一个数组中 - Swift iOS
- react-native - 试图注册两个同名的视图
- scala - 运行jar时找不到资产文件夹
- flutter - 按 startWith 分组列表
- javascript - 为什么我不能在函数外部输出,在这种情况下,我正在创建一个简单的计数器,我很困惑为什么它在内部而不是外部工作?