Django 在中间件中预置了六个方法,这六个方法的区别在于不同的阶段执行,对输入或输出进行干预。
1.初始化:无需任何参数,服务器响应第一个请求的时候调用一次,用于确定是否启用当前中间件。 1.def init(): 2. pass
2.处理请求前:在每个请求上调用,返回 None 或 HttpResponse 对象。 1.def process_request(request): 2. pass
3.处理视图前:在每个请求上调用,返回 None 或 HttpResponse 对象。
''1.def process_view(request, view_func, view_args, view_kwargs): 2. pass"
4.处理模板响应前:在每个请求上调用,返回实现了 render 方法的响应对象。
"1.def process_template_response(request, " response):2. pass
5.处理响应后:所有响应返回浏览器之前被调用,在每个请求上调用,返回 HttpResponse 对象。
"1.def process_response(request, " response): 2. pass
6.异常处理:当视图抛出异常时调用,在每个请求上调用,返回一个 HttpResponse 对象。
“1.def process_exception(request,exception): 2. pass”
中间件是一个用来处理Django的请求和响应的框架级别的钩子。它是一个轻量、低级别的插件系统,用于在全局范围内改变Django的输入和输出。每个中间件组件都负责做一些特定的功能。
说的直白一点中间件是帮助我们在视图函数执行之前和执行之后都可以做一些额外的操作,它本质上就是一个自定义类,类中定义了几个方法,Django框架会在请求的特定的时间去执行这些方法。
还可以自定义些中间件
常用5个