flask 404错误与设置访问限制

1,在管理员模块定义蓝图地方设置 请求钩子,用来为当前用户的请求设置访问限制!

@admin_blue.before_request
def before_request():
    # 判断如果不是登录页面的请求
    if not request.url.endswith(url_for("admin.login")):
        user_id = session.get("user_id")
        is_admin = session.get("is_admin", False)
        if not user_id or not is_admin:
            # 判断当前是否有用户登录,或者是否是管理员,如果不是,直接重定向到项目主页
            return redirect('/')

2,在app创建文件之中定义404错误!

#所有的请求进行检测,是否有404错误!
@app.errorhandler(404)
@user_login_data
def page_not_found(_):
    user = g.user
    data = {
        "user_info": user.to_dict() if user else None
    }
    return render_template('news/404.html', data=data)

可以单独增加url_prefix='/admin' 这样可以与其他模块进行区别!

from info.modules.admin import admin_blue
    app.register_blueprint(admin_blue, url_prefix='/admin')

3,个人中心的权限设置,如果退出的话会删除user的session信息,因此判断user 存在即可判断是否跳转。

@profile_blue.route('/info')
@user_login_data
def user_info():
    # 只需要在这里判断一次用户登录即可
    user = g.user
    if not user:
        return redirect('/')

    data = {
        'user': g.user.to_dict()
    }
    return render_template('news/user.html', data=data)

 

转载于:https://www.cnblogs.com/shi-qi/articles/9145632.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值