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()
  • 相关阅读:
    js 变量提升和函数提升原理
    解析PHP中intval()等int转换时的意外异常情况
    不要太相信自己的眼睛
    遇到乱码时的一些想法
    c++ --> 变量、常量与运算符
    [ActionScript3.0] 逻辑或"||=" ,等于"=="和全等于"==="
    [ActionScript3.0] 传递任意数量的参数
    [ActionScript3.0] 深表复制
    [ActionScript3.0] 为内建类添加方法
    Jmeter之内存溢出解决办法
  • 原文地址:https://www.cnblogs.com/zhuxibo/p/14120762.html
Copyright © 2011-2022 走看看