中间件
中间件是Django框架给开发者预留的函数接口,使得可以干预请求和应答的过程
使用中间件
1)在应用路径下新建middleware.py
文件
2)自定义中间件类,导入from django.utils.deprecation import MiddlewareMixin
,中间件类必须继承MiddlewareMixin
3)在中间件类中定义中间件预留函数
● __init __:服务器响应第一个请求的时候调用
● process_request:是在产生request对象,进行url匹配之前调用。
● process_view:是url匹配之后,调用视图函数之前调用。
● process_response:视图函数调用之后,内容返回给浏览器之前调用。
● process_exception:视图函数出现异常,会调用这个函数。
注:如果注册的多个中间件类中包含process_exception函数的时候,调用的顺序和注册的顺序是相反的
·
例:
4)在settings.py
文件里的 MIDDLEWARE[ ] 中注册中间件类
·
代码实例:
from django.http import HttpResponse
from django.utils.deprecation import MiddlewareMixin
class TestMiddleware(MiddlewareMixin):
"""中间件类"""
def __init__(self, get_response):
'''服务器每次开启时,接收第一个请求时调用。__init__()参数中必须要有get_response'''
self.get_response = get_response
print("__init__")
def process_request(self, request):
'''产生request对象后,与url匹配之前调用'''
print('___process_request____')
def process_view(self, request, view_func, *view_args, **view_kwargs):
'''与url匹配之后,在视图函数调用之前调用'''
print('___process_view___')
def process_response(self, request, response):
'''视图函数调用之后,内容返回浏览器之前调用。最后必须返回return response'''
print('___process_response___')
return response
实验结果: