• Flask——特殊的装饰器


    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
  • 相关阅读:
    公司技术的确定
    数据结构
    如何利用百度ocr实现验证码自动识别
    redis 主从复制
    redis哨兵机制
    redis集群搭建
    webmagic自定义存储(mysql、redis存储)
    redis安装与使用
    maven插件mybatis-generator自动生成代码
    python 中的“集合”(list、tuple、set、dict)
  • 原文地址:https://www.cnblogs.com/yongyuandishen/p/14905284.html
Copyright © 2020-2023  润新知