基於中間件訪問頻率限制 每分鐘時間間隔最多訪問3次
阿新 • • 發佈:2019-03-31
頻率 cor while proc process ces war esp n)
同一個IP 1分鐘時間間隔只能訪問三次
1. 拿到用戶請求的IP 2. 當前請求的時間 3. 記錄訪問的歷史
VISIT_RECORD ={ ‘ip‘:[] } class Throttle(MiddlewareMixin): def process_request(self,request): # print(request.META)通過這個可以拿到ip ip = request.META.get(‘REMOTE_ADDR‘) now = time.time() if ip notin VISIT_RECORD: VISIT_RECORD[ip] = [] history = VISIT_RECORD[ip] while history and now - history[-1] >60: history.pop() if len(history) >= 3: return HttpResponse(‘您的訪問次數超出限制!請在一分鐘之後再次訪問!!!‘) history.insert(0,now)
基於中間件訪問頻率限制 每分鐘時間間隔最多訪問3次