zoukankan      html  css  js  c++  java
  • Flask之before_request、after_request

    1.@app.before_request在请求(request)|在视图函数   之前做出响应

    解决所有问题

    from flask import Flask
    from flask import request
    from flask import redirect
    from flask import session
    
    app = Flask(__name__)  #type:Flask
    app.secret_key = 'wjs'
    
    @app.before_request
    def is_login():
        if request.path == "/login":
            return None
        
        if not session.get("user"):
            return redirect("/login")
    
    
    @app.route("/login")
    def login():
        return "Login"
    
    @app.route("/index")
    def index():
        return "Index"
    
    @app.route("/home")
    def home():
        return "Home"
    
    app.run("0.0.0.0", 5000)
    

    @app.before_request也是一个装饰器,所装饰的函数,都会在请求进入视图函数之前执行request.path是来读取当前的url地址如果是/login就允许直接通过return None你可以理解成通过放行

    校验session中是否有user如果没有的话,证明没有登录,所以毫不留情的redirect("/login")跳转到登陆页面

    2.@app.after_request在视图函数之后,响应(response)之前做出响应

    @app.after_request
    def foot_log(environ):
        if request.path != "/login":
            print("有客人访问了", request.path)
        return environ
    

      

  • 相关阅读:
    16解释器模式Interpreter
    15适配器模式Adapter
    14桥接模式Bridge
    13组合模式Composite
    12外观模式Facade
    11代理模式Proxy
    10享元模式Flyweight
    09观察者模式ObServer
    08策略模式Strategy
    07装饰模式Decorator
  • 原文地址:https://www.cnblogs.com/wjs521/p/10143685.html
Copyright © 2011-2022 走看看