zoukankan      html  css  js  c++  java
  • Flask特殊装饰器-@app.before_request、@app.after_request、@app.errorhandler

    #Flask特殊装饰器
    #@app.before_request #请求进入视图函数之前
    #@app.after_request  #请求结束返回响应客户端之前
    
        #正常  be1-be2-be3 -vf -af3-af2-af1
        #异常 be1-be2-af3-af2-af1
    
    #重定义错误信息
    #@app.errorhandler(4XX or 5XX) 错误处理,(4XX or 5XX)代表响应码
    
    
    from flask import Flask,request,session,redirect,render_template,send_file
    app = Flask(__name__)
    app.secret_key='@HID*@#'
    
    
    #
    # def warp(fun):
    #     def inner(*args,**kwargs):
    #
    #         if session.get("user"):
    #             ret = fun(*args,**kwargs)
    #         else:
    #             return redirect("/login_se")
    #         print("校验完成")
    #
    #         return ret
    #     return inner
    
    
    @app.before_request
    def be1():
        print("我是be1")
    
    @app.before_request
    def be2():
        print("我是be2")
        if request.path == "/login_se":
            return None
        if session.get("user"):
            return None
        else:
            return redirect("/login_se")
    
    @app.before_request
    def be3():
        print("我是be3")
    
    
    
    @app.after_request
    def af1(res):
        print("af1")
        return res
    
    @app.after_request
    def af2(res):
        print("af2")
        return res
    
    @app.after_request
    def af3(res):
        print("af3")
        return res
    
    
    @app.route("/login_se",methods=["GET","POST"])
    def login_se():
        if request.method == 'GET':
            return render_template("login_new.html")
        else:
            session["user"]=request.form.get("username")
            return "登陆成功"
    
    
    @app.route("/index")
    def index():
        print("我是视图函数")
        return render_template("home.html")
    
    
    @app.route("/index1")
    def index1():
        return render_template("home.html")
    
    
    @app.route("/index2")
    def index2():
        return render_template("home.html")
    
    
    @app.errorhandler(404)
    def error404(ErrorMessgae):
        print(ErrorMessgae)
        # return f"你访问的{request.path}不存在"
        # return redirect("/login_se")
        return send_file("my_picture/111.png")
    
    if __name__ == '__main__':
        app.run()
  • 相关阅读:
    CVE-2017-12149JBoss 反序列化漏洞利用
    Exp4:恶意代码分析
    Exp3:MAL_免杀原理与实践
    Exp2:后门原理与实践
    Exp1 PC平台逆向破解
    20155212 2016-2017-2《Java程序设计》课程总结
    20155117王震宇实验五网络编程与安全
    20155117王震宇实验四 Andoid开发基础实验报告
    Exp9 Web安全基础
    Exp8 web基础
  • 原文地址:https://www.cnblogs.com/zhuxibo/p/14120762.html
Copyright © 2011-2022 走看看