django自带7个中间件,支持自定义
在使用django开发项目的时候如果涉及到全局相关功能都可以使用中间件
1.用户身份校验
2.权限校验
3.访问频率校验
请求来的时候和走的时候都需要经过中间件
django支持自定义并且暴露5个可以自定义的方法:
掌握:
1.process_request
2.process_response
了解:
1.process_view
2.process_template_response
3.process_exception
自定义中间件
1.在项目或应用下创建一个文件夹
2.文件夹内创建一个py文件
3.书写代码,且必须继承MiddlewareMixin
4.settings内配置路径才能生效
from django.utils.deprecation import MiddlewareMixinclass Mymiddleware(MiddlewareMixin):def process_request(self,request):passdef process_response(self,request,response):return responseMIDDLEWARE = ['django.middleware.security.SecurityMiddleware','django.contrib.sessions.middleware.SessionMiddleware','django.middleware.common.CommonMiddleware','django.middleware.csrf.CsrfViewMiddleware','django.contrib.auth.middleware.AuthenticationMiddleware','django.contrib.messages.middleware.MessageMiddleware','django.middleware.clickjacking.XFrameOptionsMiddleware','app01.mymiddleware.mymd.Mymiddleware',#配置的路径]
process_request
请求来到时候会经过django中间件中的每一个该方法
执行顺序:配置文件中的顺序
如果返回了HttpResponse对象,则请求原路返回,不再继续往后
用来做全局相关的限制功能
process_response
执行顺序和process_request相反
如果在一个中间件中的process_request中直接返回了HttpResponse,则执行当前中间件下的process_response后直接返回
