flask-login 功能扩展 flask-login-multi

手头开发一个登录项目,分user 和admin 表,需要分别登录前后台,flask 的扩展flask-login 已有的功能不能满足需要

所以打算研究一下源代码,扩展一下功能。

项目 user 和admin 两个模块,分别用于用户中心和管理后台区分。

所以有了思路,flask-login里面的session用endpoint的名字分别记录 user 和admin 的登录状态

完整模块 

https://github.com/siaoynli/flask_login_multi

pipy地址

https://pypi.org/project/Flask-Login-Multi/

安装好 flask-login 和 flask-login-multi

pip install flask_login
pip install flask_login_multi

1.创建app,主要代码

from flask import Flask
from flask_login_multi.login_manager import LoginManager   

app=Flask(__name__)

login_manager = LoginManager(app)   

#用于各个蓝图跳转登录页的 endpoint login_manager.blueprint_login_views = { 'user': "user.user_login", 'admin': "admin.admin_login", }

2.创建蓝图,注册蓝图代码略过

admin_app = Blueprint('admin', __name__, url_prefix="/admin")  
user_app = Blueprint('user', __name__, url_prefix="/user")

3. 模型里添加 user_loader,里面的endpoint名字对应蓝图的名字,user,admin

@login_manager.user_loader
def load_user(id, endpoint='user'):
    if endpoint == 'admin':
        return Admin.query.get(id)
    else:
        return User.query.get(id)

 4.登录用户或管理员,功能和flask-login一样

 from flask_login_multi import login_user

 #user
 user = User.query.filter_by(name=form.name.data).first()
 login_user(user,remember=True)

 #admin
 user = Admin.query.filter_by(name=form.name.data).first()
 login_user(admin)

5.权限 ,和flask-login功能一样

from flask_login_multi import login_required,current_user  
 

#管理首页
@admin_app.route('/index')  
@login_required  
def index():  
   print(current_user)  
   return 'admin.index' 

 6.退出当前用户 

 logout_user()

  

 

 欢迎加入qq群交流  184596631

转载于:https://www.cnblogs.com/alstonlee/p/9282418.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值