中间件是request和response处理过程中的一个插件,浏览器到达视图函数之前,response到达浏览器之前!

自定义中间件

可以创建一个,middlewares.py文件来存放这个APP的中间件,也可以创建一个python包来存放整个项目的中间件

中间件执行是有顺序的,有的中间件需要依赖其他的中间件才能执行!

函数形式

def simple_middleware(get_response):必须传一个get_response

#初始化

def middleware(request):

request到视图之前

responst = get_response(requesst)

response到浏览器之前

return response

retrun middleware

类的形式

class SimpleMiddleware(object):

def __init__(self,get_response):

self.get_response = get_response

初始化中间件

def __call__

request到达视图之前

response = self.get_response

response到达浏览器之前

return response

django.utils.deprecation.MiddlewareMixin,在deprecaton中的都是将被django遗弃的!