第一步:项目的settings.py文件中
MIDDLEWARE_CLASSES = ( 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.common.CommonMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.auth.middleware.SessionAuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware', 'django.middleware.security.SecurityMiddleware', # 自定义中间件 'Middle.test.TestMiddleware', )
注意:中间件的顺序,这个中间件调用是有顺序的,详细的顺序自行百度查找
第二步: 在项目的目录中创建一个python package类型的文件夹(Middle),在此文件夹中新建一个python文件(TestMiddleware.py)
# -*- coding:utf-8 -*- # __author = 'Suny' class TestMiddleware(object): def process_request(self, request): """ 发起http请求时会执行此函数的内容 :param request: :return: """ print '中间件请求!' # http请求响应时会执行此函数的内容 def process_response(self, request, response): print '中间件响应 !' return response def process_exception(self, request, exception): """ 视图函数中有报错信息时执行此函数的内容 :param request: :param exception: :return: """ print '视图报错中间件返回信息 !' return exception def process_view(self, request, callback, callback_args, callback_kwargs): """ request请求完了后,再返回执行第一个view直到最后一个view :param request: :param callback: :param callback_args: :param callback_kwargs: :return: """ print '中间件view !' def process_template_response(self, request, response): ''' 视图函数的返回值中,如果有render方法,才被调用 :param request: :param response: :return: ''' print '视图中有render方法, 中间件返回render' return response
第三步: 项目app的urls.py中添加一个url
urlpatterns = [ url(r'^article/$', app01_view.article, name='article'), ]
第四步: 项目app的views.py中添加一个视图函数
def article(request): print '执行article !' return render(request, 'article.html')
注意:这里只是简单的介绍,更详细的自定义中间件(Middleware)和具体需要处理的问题还是要根据自己项目的需求
注意:以上内容是个人使用的随手记录, 就是介绍了下简单的使用
欢迎大家来吐槽,准备好瓜子饮料矿泉水,开整!!!
---------------------------------------------------------------------------------------
搞笑一则:能动手尽量别吵吵