Django—中间件详解

时间:2025-02-23 19:53:14
# file: from django.http import HttpResponse from django.utils.deprecation import MiddlewareMixin import re class MWare(MiddlewareMixin): count_dict = {} #创建用于统计次数的字典 def process_request(self,request): request_ip = request.META['REMOTE_ADDR'] #获取请求IP request_url = request.path_info #获取请求URL if re.match(r'^/test',request_url): #匹配请求是否以/test开头 times = self.count_dict.get(request_ip,0) #查询当前IP的请求次数,默认为0 self.count_dict[request_ip]= times + 1 #请求次数 + 1 if times < 5: #如果请求次数<5次,请求正常通过 return else: #如果请求次数>5次,则返回HttpResponse,阻止请求 return HttpResponse("访问次数超过5次,请求失败") else: #如果不是以/test开头则直接正常通过 return