中间件方法:
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对象