首页 / PYTHON / python – flask-login:异常:没有为此LoginManager安装user_loader.使用’LoginManager.user_loader’装饰器添加一个
python – flask-login:异常:没有为此LoginManager安装user_loader.使用’LoginManager.user_loader’装饰器添加一个
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python – flask-login:异常:没有为此LoginManager安装user_loader.使用’LoginManager.user_loader’装饰器添加一个,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2759字,纯文字阅读大概需要4分钟。
内容图文
![python – flask-login:异常:没有为此LoginManager安装user_loader.使用’LoginManager.user_loader’装饰器添加一个](/upload/InfoBanner/zyjiaocheng/750/5d78cf2a3ab44bb8acba8eca26fc422d.jpg)
我想使用flask_login来管理用户登录,但是有些错误如下:
例外:此LoginManager尚未安装user_loader.使用’LoginManager.user_loader’装饰器添加一个.
这是我的models.py(PS:我使用Flask peewee来构建我的模型)
from peewee import *
from playhouse.fields import ManyToManyField
from .__init__ import login_manager
from flask_login import UserMixin, AnonymousUserMixin
db = SqliteDatabase('adminSystem.db')
class BaseModel(Model):
class Meta:
database = db
class User(UserMixin, BaseModel):
name = CharField()
email = CharField()
is_admin = BooleanField()
username = CharField()
passwd_hash = CharField()
teacher = ForeignKeyField('self', related_name='students', null=True)
#def is_authenticated(self):
# return True
#def is_active(self):
# return True
#def is_anonymous(self):
# return False
#def get_id(self):
# try:
# return unicode(self.id)
# except NameError:
# return str(self.id)
class Homework(BaseModel):
owner = ForeignKeyField(User, related_name='homeworks', null=True)
pub_datetime = DateTimeField()
connect = TextField()
homework_id =CharField()
file_url = CharField()
class Score(BaseModel):
homework_id = CharField()
stu_id = CharField()
grade = IntegerField()
file_url = CharField()
class AnonymousUser(AnonymousUserMixin):
def can(self, permissions):
return False
def is_administrator(self):
return False
@login_manager.user_loader
def load_user(userid):
try:
#: Flask Peewee used here to return the user object
return User.get(User.id==userid)
except User.DoesNotExist:
return None
这是我view.py的一部分
from flask import render_template, url_for, redirect, request, g
from . import auth
from werkzeug.security import generate_password_hash, check_password_hash
from ..models import db, User, Homework, Score
from flask_login import login_user, logout_user, login_required, current_user
@auth.before_app_request
def before_request():
g.user = current_user
@auth.route('/login', methods=['POST', 'GET'])
def login():
if request.method == 'POST':
if request.form['role'] == 'teacher':
user = User.get(User.username == request.form['username'])
if check_password_hash(user.passwd_hash, request.form['password']):
login_user(user)
return redirect(url_for('main.post'))
return render_template('login.html')
elif request.form['role'] == 'student':
user = User.get(User.username == request.form['username'])
if check_password_hash(user.passwd_hash, request.form['password']):
login_user(user)
return redirect(url_for('main.show'))
return render_template('login.html')
return render_template('login.html')
并且有一张我尝试过的照片
解决方法:
根据https://flask-login.readthedocs.io/en/latest/#configuring-your-application
Once the actual application object has been created, you can configure
it for login with:login_manager.init_app(app)
之后,您可以使用装饰器等注册回调.以便login_manager具有要处理的上下文.
内容总结
以上是互联网集市为您收集整理的python – flask-login:异常:没有为此LoginManager安装user_loader.使用’LoginManager.user_loader’装饰器添加一个全部内容,希望文章能够帮你解决python – flask-login:异常:没有为此LoginManager安装user_loader.使用’LoginManager.user_loader’装饰器添加一个所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。