第一步:項目的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)和具體需要處理的問題還是要根據自己項目的需求
注意:以上內容是個人使用的隨手記錄, 就是介紹了下簡單的使用
歡迎大家來吐槽,準備好瓜子飲料礦泉水,開整!!!
---------------------------------------------------------------------------------------
搞笑一則:能動手儘量別吵吵