django中间件

中间件方法:

1、__init__(self)仅在服务进程启动的时候调用,而在针对单个request处理时并不执行

2、process_request(self,request)该方法调用时机是:django收到request之后,解析url确定视图之前

  返回None 或 HttpResponse对象:

  • 返回None:django继续处理这个request,执行后续中间件,调用响应视图
  • 返回HttpResponse对象:django立即返回该对象,而不执行后续操作

3、process_view(self,request,view,args,kwargs)调用时机:确定要执行的视图之后,但在实际执行视图函数之前

  • view:视图函数名,非字符串
  • args:将传入view的参数列表
  • kwargs:将传入view的关键字参数字典

  返回None 或 HttpResponse对象,同上

4、process_response(self,request,response)调用时机:执行视图函数并生成response后。可以修改response内容

  返回response对象:该对象可以是传入时的response对象,也可以是新生成的response对象

5、process_exception(self,request,exception)调用时机:reque处理过程中出了问题并且view函数抛出一个未捕获的异常时才被调用

  返回None 或 HttpResponse对象:

  • 返回None:django用内置错误处理机制
  • 返回HttpResponse对象:django使用该response对象
渐变 --> 突变
原文地址:https://www.cnblogs.com/lybpy/p/8542025.html