flask中拦截用户登录修饰符decorator的使用

一般我们的后台管理系统需要用户先登录才有权限访问页面内容,我们就要做个登录拦截器,在flask直接使用decorator修饰符就可以

  • 1、新建一个flask项目
  • 2、在app.py文件中定义一个修饰符的类
#定义一个装饰器用于拦截用户登录
#func是使用该修饰符的地方是视图函数
def login_require(func):
    def decorator(*args,**kwargs):
        #现在是模拟登录,获取用户名,项目开发中获取session
        username = flask.request.args.get('username')
        #判断用户名存在且用户名是什么的时候直接那个视图函数
        if username and username == 'admin':
            return func(*args,**kwargs)
        else:
            #如果没有就重定向到登录页面
            return flask.redirect("login")
    return decorator
  • 3、在函数视图中调用
#主页面
@app.route('/')
@login_require
def hello_world():
    return u'我是主页面'

@app.route("/login/")
def login():
    return u'请先登录'
  • 4、在类视图中使用
class Page(views.MethodView):
    decorators = [login_require]
    def get(self):
        return u'我是page页面'
    def post(self):
        return u'我是post方法'

app.add_url_rule('/page/',endpoint='page',view_func=Page.as_view('page'))
  • 5、哪里需要拦截就在哪里使用
  • 6、模拟登录下
    这里写图片描述
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

水痕01

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值