app.before_request
from flask import Flask,render_template,send_file,request,redirect,session app = Flask(__name__,template_folder="templates") app.secret_key="henry" @app.before_request def auth(): # 白名单放行 if request.path == "/login": return None # 判断是否是登录用户 if session.get("username"): return None else: # 如果不是登录页面就会跳转到登录页面 return redirect("login") @app.route("/login",methods=["GET","POST"]) def login(): if request.method=="GET": return render_template("login.html") username = request.form.get("username") password = request.form.get("password") # 判断用户名和密码是否正确 if username=="henry" and password=="123456": # 登录成功后设置session session["username"] = username # 访问home页面之前会先走before_request装饰器,每个请求都会完整的走一遍before_request装饰器 return redirect("home") else: return "用户名或密码错误" @app.route('/home') def home(): return "home" if __name__ == '__main__': app.run()
app.before_after
@app.after_request def foot_log(environ): if request.path != "/login": print("有客人访问了",request.path) return environ