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

  

原文地址:https://www.cnblogs.com/wjs521/p/10143685.html