django 自定义的中间件

django   中间件    可以修改django内容的输入或者输出在每次运行的时候调用

1,在应用下创建一个python包(在其他的应用中也可以)

在这里面写自己需要的自定义中间件

2,需要继承的方法是   MiddlewareMinxi

需要导入from  django.utils.deprecation  import  MiddlewareMixin

3,在配置文件中配置这个中间件

MIDDLEWARE = [  (应用名)。(自建的中间件)。(中间件的文件名)。(中间件所在的类)  ]      

4,在自定义中的文件中导入需要继承的方法   MiddlewareMixin

from django.utils.deprecation  import  MiddlewareMixin

5,写请求前的内容

需要获取值的时候用

request.META.get('HTTP_TOKEN')   # 这样来获取所有值

 6,有以下几种请求方式

class Mixin(MiddlewareMixin):
    # django提供了五个中间件的方法。
def process_request(self, request):
  '''
      处理请求前:在每个请求上,request对象产生之后,url匹配之前调用,返回None或HttpResponse
  '''
  pass

def process_view(self, request, view_func, *view_args, **view_kwargs):
  '''
    处理视图前:在每个请求上,url匹配之后,视图函数调用之前调用,返回None或HttpResponse对象。
  '''
    pass

def process_response(self, request, response):
  '''
   处理响应后:视图函数调用之后,所有响应返回浏览器之前被调用,在每个请求上调用,返回HttpResponse对象。
  '''
    return response

def process_exception(self, request,exception):
  '''
    异常处理:当视图抛出异常时调用,在每个请求上调用。
  '''
  pass

def process_template_response(self, request, response):
    '''
      函数是在视图函数执行完后立即执行的,返回一个HttpResponse对象。
    '''
  return response