flask中间件之请求扩展

引言:有这样的一个需求,如果用户未登录,我们要求用户跳转到登陆页,如果用户已登陆,每个页面可以获取用户信息

面对这样的问题,我们可能会想到装饰器,就是给每个页面都加上装饰器,通过装饰器去判断用户是否登陆,这样会很麻烦,于是中间件就出现了,它相当于一个钩子,就是我们可以在请求的前后挂载我们需要的功能。

  • 首先,我们可以声明一个before_request进行钩子挂载

 

from flask import Flask,request,session,redirect,render_template

@app.before_request
def process_request():
    print("所有请求之前都会执行这个函数")
   
    
  • 加入我们的处理逻辑

 

@app.before_request
def process_request():
    if request.path == "/login":
        return None
    
    user = session.get('user_info')
   
    if user:
        return None
   
    return redirect("/login")

总结:中间件就是相当于我们在处理请求的前后加了一个个水管过滤器,我们可以对进入的水进行过滤处理,至于用什么装备过滤,就取决于我们自己。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值