1. 程式人生 > 遊戲 >策略RPG《亞瑟王:騎士傳說》新視訊 畫面玩法展示

策略RPG《亞瑟王:騎士傳說》新視訊 畫面玩法展示

中介軟體

中介軟體的定義

  • 請求響應
  • 全域性改變django的輸入輸出(request,response)

中介軟體理解

編寫

返回None與HttpResponse


應用

註冊中介軟體

class VisitLimit(MiddlewareMixin):
    visittime={}
    #類變數在記憶體中當需要重新訪問時需要重啟runserver
    def process_request(self,request):
        ip=request.META["REMOTE_ADDR"]
        path_url=request.path_info
        if  not re.match("^/test",path_url):
            return 
        times=self.visittime.get(ip,0)
        print("ip",ip,'已訪問',times)
        self.visittime[ip]=times+1
        if times<5:
            return 
        return HttpResponse("您已經訪問過"+str(times)+'次'+'被禁止訪問')

後臺顯示

Django version 2.2.12, using settings 'mymiddleware.se
Starting development server at http://127.0.0.1:8000/
Quit the server with CTRL-BREAK.
ip 127.0.0.1 已訪問 0
test-----my view in---
[05/Sep/2021 14:25:45] "GET /test_mw HTTP/1.1" 200 2
ip 127.0.0.1 已訪問 1
test-----my view in---
[05/Sep/2021 14:25:50] "GET /test_mw HTTP/1.1" 200 2
ip 127.0.0.1 已訪問 2
test-----my view in---
[05/Sep/2021 14:25:53] "GET /test_mw HTTP/1.1" 200 2
ip 127.0.0.1 已訪問 3
test-----my view in---
[05/Sep/2021 14:25:54] "GET /test_mw HTTP/1.1" 200 2
ip 127.0.0.1 已訪問 4
test-----my view in---