Django中间件是一个轻量级的插件系统,它的主要功能是在Django的请求和响应处理过程中添加额外的行为。每个中间件组件都可以定义五种方法:__init__
,__call__
,__ready__
,process_request
,process_response
。
以下是一个简单的自定义中间件示例:
# middlewares.py
from django.utils.deprecation import MiddlewareMixin
class SimpleMiddleware(MiddlewareMixin):
def process_request(self, request):
# 在所有视图处理前运行
print("Request arrived in SimpleMiddleware")
def process_view(self, request, view_func, view_args, view_kwargs):
# 在视图函数调用之前运行
print("View has been resolved")
def process_response(self, request, response):
# 在所有响应发送给用户之前运行
print("Response is on the way")
return response
要使用这个中间件,你需要在你的Django项目的settings.py
文件中的MIDDLEWARE
设置中添加这个中间件的路径:
# settings.py
MIDDLEWARE = [
'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',
'path.to.middlewares.SimpleMiddleware', # 添加这行
]
这个中间件会在每个请求到达后和响应返回前打印出一条消息。这只是一个简单的示例,实际中间件可以做更复杂的操作,比如身份验证、日志记录、缓存、请求修改等。