Django中的中间件是一个轻量级,底层的插件系统,可以介入django的请求和响应处理过程,修改Django的输入或输出。中间件的设计为开发者提供了一种无侵入式的开发方式,增强了Django框架的健壮性。可以使用中间件,在Django处理视图的不同阶段对输入或输出进行干预。
一、中间件的定义方法
Django在中间件中预置了六个方法,这六个方法,会在不同的阶段自动执行,对输入或输出进行干预。
1-1:初始化方法
启动Django程序,初始化中间件时,自动调用一次,用于确定是否启用当前中间件
def __init__(self,get_response=NOne):
pass
1-2:处理请求前的方法
在处理每个请求前,自动调用,返回None或HttpResponse对象
def process_request(self,request):
pass
1-3:处理响应后的方法
在每个响应返回给客户端之前,自动调用,返回HttpResponse对象
def process_response(self,request,response):
pass
二、实际应用
在子应用book下创建中间件文件middleware.py文件
from django.utils.deprecation import MiddlewareMixin
class TestMiddleware(MiddlewareMixin):
def process_request(self,request):
print("每次请求前,都会调用执行")
username = request.COOKIES.get('name')
if username is None:
print("无用户信息")
else:
print("有用户信息")
def process_response(self,request,response):
print("每次响应前都会调用执行")
return response
在settings.py文件中进行注册
请求url:http://127.0.0.1:8000/set_cookie/?username=itcast,设置cookie
image.png
image.png
再次请求url:http://127.0.0.1:8000/get_cookie/,获取cookie
image.png
image.png
网友评论