• flask的异常处理(errorhandler),template_global,以及过滤(template_filter)


    flask的异常处理(errorhandler),template_global,以及过滤(template_filter)

    from flask import Flask, request, render_template
    
    app = Flask(__name__)
    
    
    # teardown_request,一旦遇到错误就会执行,并且把错误信息传递给teardown_request装饰的函数
    # 没有错误也会执行,但是错误为none
    # @app.teardown_request
    # def tear(e):
    #     print(e)
    #     print('我是teardown_request')
    #
    
    
    # errorhandle 可以捕获错误,并且对错误做出响应,返回给用户,如果你要用errorhandler你必须指定他是谁
    # 捕获那种类型的错误,就必须传错误,然后做返回值,返回给用户
    
    @app.errorhandler(500)
    def error_500(e):
        print(e)
        return '我程序崩了,你下次来吧'
    
    
    @app.errorhandler(404)
    def error_404(e):
        print(e)
        return render_template('404.html')
    
    # 相当于django中的标签,通过他我们就可以不用再响应函数中传,直接在HTML中把global的函数名写上即可
    @app.template_global()
    def get_sb(a1, a2):
        return a1 + a2
    
    # django中的过滤器,第一个参数是你要过滤的那个值(自身)
    @app.template_filter()
    def get_something(a1, a2, a3, a4): # 不同于django的过滤器只能接受2个这里可以接受多个参数
        return a1+a2+a3+a4
    
    
    @app.route('/')
    def index():
        print('我是响应函数')
        # 不用template_global的写法
        # return render_template('index.html', sb=get_sb)
        # 用template_global的写法
        return render_template('index.html')
    
    
    if __name__ == '__main__':
        app.run()
    
    
    

    index.html

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
        <script src="https://cdn.bootcss.com/jquery/3.4.1/jquery.min.js"></script>
    
    
    </head>
    <body>
    
    {{get_sb(1,2)}}
    
    {{1|get_something(2,3,4)}}
    </body>
    </html>
    

    404.html

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
        <script src="https://cdn.bootcss.com/jquery/3.4.1/jquery.min.js"></script>
    
    
    </head>
    <body>
    <h1>不要乱访问,不然下次看到的还是我</h1>
    
    </body>
    </html>
    

  • 相关阅读:
    ⑬.nginx缓存
    ⑫.nginx匹配不同的终端http_user-agent
    ⑪.nginx动静分离
    ⑩.nginx静态服务
    OSS 设置ram账户权限
    ⑤ raid
    ⑨nginx 负载均衡
    ⑧nginx 反向代理
    ⑤nginx 常用模块
    ④nginx日志管理
  • 原文地址:https://www.cnblogs.com/yafeng666/p/12526486.html
Copyright © 2020-2023  润新知