django-中间件详解
一.django中间件
在http请求 到达视图函数之前 和视图函数return之后, django会根据自己的规则在合适的时机执行中间件中相应的方法。
中间间的执行流程
编写中间件
(1)你需要在你的应用下面新建一个名字为middleware.py的文件。
(2)定义一个中间件类,根据需求重写下面的某些方法。
from django.http import HttpResponse
class TestMiddleware(object):
"""中间件类"""
def __init__(self):
"""服务器重启之后,接收到的第一个请求时调用"""
print("----init-----")
def process_request(self,request):
"""产生request对象之后,url匹配之前调用"""
print("----process_request----")
#return HttpResponse('ok')
def process_view(self,request,view_func,*view_args,**view_kwargs):
"""url配置之后,视图函数调用之前"""
print('process_view')
def process_response(self,request,response):
"""视图函数调用之后,内容返回给浏览器之前"""
print('---process_response')
return response
(3)在项目settinging.py的MIDDLEWARE_CLASSES里面注册创建的中间件类。
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',
'booktest.middleware.TestMiddleware'#注册中间件的类
)
这就是中间件简单的一些使用方法。