Python web实战之细说Django的中间件
在Django中,中间件是一个轻量且强大的系统,它被用于全局改变Django的输入或输出。中间件的本质是一个类,它包含了几个方法,可以在Django处理请求和响应的过程中被调用。
以下是一个简单的自定义中间件的例子:
# middlewares.py
from django.utils.deprecation import MiddlewareMixin
class CustomMiddleware(MiddlewareMixin):
def __init__(self, get_response=None):
self.get_response = get_response
def process_request(self, request):
# 请求来的时候会调用这个方法
print("Request is comming...")
def process_response(self, request, response):
# 响应去的时候会调用这个方法
print("Response is sending...")
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.CustomMiddleware', # 添加自定义中间件
]
这样,每次请求和响应时,CustomMiddleware中定义的process\_request和process\_response方法都会被调用。
评论已关闭