中間件簡介:
中間件是在 wsgi.py 之后,urls.py 之前,在全局操作 Django 請求和響應的模塊
在 settings.py 中可以看到中間件的相關配置

該列表中的每一個元素都是一個類,一個中間件
例如:
django.middleware.csrf.CsrfViewMiddleware 可以寫為: from django.middleware.csrf import CsrfViewMiddleware
中間件的處理順序就是按照該列表元素的順序進行處理
中間件中可以定義 5 個方法:
process_request(self, request) process_response(self, request, response) process_view(self, request, view_func, view_args, view_kwargs) process_template_response(self, request, response) process_exception(self, request, exception)
自定義中間件:
在根目錄下新建一個 middleware_test.py 文件

middleware_test.py:
from django.utils.deprecation import MiddlewareMixin
class Test(MiddlewareMixin):
def process_request(self, request):
print("這是一個中間件 --> test")
class Test2(MiddlewareMixin):
def process_request(self, request):
print("這是一個中間件 --> test2")
在 settings.py 的中間件配置中添加自定義的中間件

這里先添加 Test2,再添加 Test,所以會先執行 Test2,再執行 Test
views.py:
from django.shortcuts import HttpResponse
def index(request):
print("這里是 index 頁面")
return HttpResponse("這里是主頁面 index")
訪問,http://127.0.0.1:8000/index/

看一下 pycharm 打印了什么

先執行了中間件 Test2,然后再執行 Test1,最后執行的是 views.py 中的 index 函數
