Django中间件模块的使用

中间件:

WSGI:用来搭建和服务器端通信的socket框架和网络收发消息相关的操作

在WSGI之后,urls.py之前 在全局操作Django请求和响应的模块

中间件的使用>>>5个固定的方法:

process_request(self,request)

       顺序: 按照注册顺序,在setting文件里的设置中,从上到下的顺序执行

  返回值:若返回值为None,则执行后续的中间件

process_response(self,request,response)

       顺序: 按照注册顺序,在setting文件里的设置中,从下到上的顺序执行

  返回值:必须有一个response对象返回,否则报错

process_view(self,request,view_fun,view_args,view_kwargs)

  顺序: 按照注册顺序,在setting文件里的设置中,从上到下的顺序执行

      在urls中找到对应关系之后,在执行真正的视图函数之前执行

  返回值:若返回值为None,则执行后续的process_view中间件

            若有response对象返回,则后续的process_view不在执行,直接执行process_response从下到上的顺序执行

process_exception(self,request,exception)

  顺序: 按照注册顺序,在setting文件里的设置中,从下到上的顺序执行

        视图函数中抛出异常时才执行

  返回值:若返回值为None,则执行后续的process_exception中间件

                   返回response

process_template_response(self,request,response)

   顺序: 按照注册顺序,在setting文件里的设置中,从下到上的顺序执行

     视图函数执行完成,在执行视图函数的返回对象的render方法之前执行

     返回值:若返回值为None,则执行后续的process_exception中间件

               返回response

Django 5个方法的调用顺序:

  1.process_request

              urls.py

  2.process_view

            view

  3.有异常就执行process_exception

  4.如果视图函数返回的响应对象有render方法,就执行process_template_response

  5.process_response

posted @ 2018-09-12 20:10  青红*皂了个白  阅读(146)  评论(0编辑  收藏  举报