码迷,mamicode.com
首页 > 其他好文 > 详细

中间件

时间:2018-09-18 16:03:16      阅读:102      评论:0      收藏:0      [点我收藏+]

标签:temp   none   定义   参数   请求   ons   视图   直接   war   

中间件

1. 什么是中间件?
    中间件是一个类。用来处理Django的请求和响应的框架级别的钩子。
    中间件中定义方法。
2. 五个方法:(process_request、process_response)
    process_request(self,request)
    process_view(self, request, view_func, view_args, view_kwargs)
    process_template_response(self,request,response)
    process_exception(self, request, exception)
    process_response(self, request, response)
    
    1. process_request
        1. 执行时间
            在视图函数之前执行
        2. 参数
            request 和视图中的request是同一个
        3. 返回值
            返回None  
            返回response对象   
                不执行后面中间的process_request方法和视图
                直接执行当前值中间件的process_response方法
        4. 执行顺序
            按照注册的顺序执行 
            
            
    2. process_response	
        1. 执行时间	
            在视图函数之后执行
        2. request, response
            request 和视图中的request是同一个
            response 返回的response对象
        3. 返回值
            返回response对象
        4. 执行顺序
            按照注册的倒序执行
            
    3. process_view
        1. 执行时间
            在视图函数之前,process_request之后执行
        2. 参数
            view_func  将要执行的视图函数
            view_args  视图函数的可变长位置参数
            view_kwargs	视图函数的可变长关键字参数
        3. 返回值
            返回  None  正常执行 
            返回  response对象   不执行后面的process_view和视图,直接执行所有中间件的process_response方法
            
        4。执行顺序
            按照注册的顺序执行
    
    4. process_exception(有条件触发:有错误才执行)
        1. 执行时间
            在视图函数之后,process_response之前执行
        2. 参数
            exception  错误对象
        3. 返回值
            返回  None  不对错误进行处理,交给下一个中间件进行处理
            返回  response对象  下一个中间的process_exception不执行,直接执行所有中间件的process_response方法
        4. 执行顺序
            按照注册的倒序执行
    5. process_template_response(条件触发:视图返回的response有render方法)
        1. 执行时间
            在视图函数之后,process_response之前执行
        2. 参数
        3. 返回值
            返回 response对象
        4. 执行顺序
            按照注册的倒序执行,执行完所有的process_template_response方法后执行response.render方法

中间件

标签:temp   none   定义   参数   请求   ons   视图   直接   war   

原文地址:https://www.cnblogs.com/perfey/p/9668918.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!