• flask 的before_request以及after_request


    flask的响应函数前(before_request),以及响应函数后(after_request)

    # flask 的请求扩展,相当于django的中间件
    
    from flask import Flask, request
    
    app = Flask(__name__)
    
    
    # 项目启动后接受到的第一个请求,所要执行的函数,整个项目的第一次,和浏览器没有关系
    @app.before_first_request
    def first():
        print('我是第一次')
    
    
    # 执行响应函数之前,相当于django中的process_request, 在执行响应函数之前做一些事情
    """
    总结:
        请求执行之前的顺序是:谁先注册,谁就先执行
    """
    @app.before_request
    def before1():
        print('我是before1')
        return 'ok'
    """
    注意:如果before_request中有返回值,那后面的before就不会执行,且响应函数也不会执行
            但是after_request任然会全部执行(这里与django不同,django是同级返回)
    """
    
    
    @app.before_request
    def before2():
        print('我是before2')
    
    
    # 响应函数之后执行,相当于django的process_response,在响应函数之后执行的
    """
    总结:
        after_request的执行顺序是:先注册,后执行
    """
    
    @app.after_request
    # after_request必须接受一个参数,参数为response对象,且必须返回
    def after1(response):
        print('响应后的参数', response)
        print('我是after1')
        return response
    
    
    @app.after_request
    def after2(response):
        print('响应后的参数', response)
        print('我是after2')
        return response
    
    
    @app.route('/')
    def index():
        print('我是响应函数')
        return 'ok'
    
    if __name__ == '__main__':
        """
        app.run()启动项目的本质:run_simple(host, port, self, **options)
        self(请求相关,响应相关), self即app对象
        app(请求相关,响应相关),对象加括号会执行__call__方法
        所以我们看app的__call__方法, 发现__call__就直接调用了另一个方法
        所以我们看另一个方法   wsgi_app
        """
        app.__call__()
        app.run()
    
    






  • 相关阅读:
    增加samba用户提示Failed to add entry for user
    二叉树
    excel技巧
    mongodb导入json文件
    mongodb导出数据csv格式
    mongoexport导出csv中文乱码
    左连接,结果大于左面的表验证 解释
    plsql 用法和技巧
    对javaNI和NIO理解
    TinyMCE4.x整合教程-Xproer.WordPaster
  • 原文地址:https://www.cnblogs.com/yafeng666/p/12525407.html
Copyright © 2020-2023  润新知