zoukankan      html  css  js  c++  java
  • 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")
    
    

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

  • 相关阅读:
    零散
    修改element的内部样式的两种方式
    在vue-cli项目中使用第三方的js,不是es6格式
    Docker知识
    golang使用grpc
    vue中axios导出文件
    nginx、vue和thinkphp配置
    Mysql的一些问题
    数据库索引失效原因
    golang中使用grpc服务
  • 原文地址:https://www.cnblogs.com/itdreamfly/p/12871599.html
Copyright © 2011-2022 走看看