Django中介軟體(強制登入)

2021-09-29 13:50:58 字數 1152 閱讀 8957

中介軟體(middleware)用於在http請求到達 檢視函式之前 和 檢視函式return之後 ,django會根據自己的規則在

合適的時機執行中介軟體中相應的方法。

常用作view中冗餘功能的抽取,如每個頁面(或某些頁面)在訪問前強制登入。

強制登入例項

定義中介軟體(可以新建乙個包)

中介軟體中常用的兩個過程:process_request , process_response

class mymiddleaware2(middlewaremixin):

#如果驗證成功,則什麼乙個不用做,否則返回httpresponse即可響應請求(中斷)

def process_request(self,request):#強制登入判斷

if "login" not in request.path:#路徑中如果沒有"login"

print("登入驗證")

session = request.session #獲取session

if session.get("login"): #判斷是否有登入的標記

print("已登入")

else:

print("未登入")

return render(request,"login.html") #未登入則,跳轉登入頁面

else:

print("正在登入") #如果路徑中"login"則是登入動作本身

def process_response(self,request,response):

print("response:",request,response)

return response #持續返回響應

啟用中介軟體(匯入第一步中中介軟體類的路徑)

每當有請求發生時,所有中介軟體都會執行自己的生命週期。

middleware = [

'django.middleware.security.securitymiddleware',

....

'middleware115.middlewares.mymiddleware2',# 註冊自定義中介軟體,盡量放在最後註冊

]

Django 中介軟體 登入驗證

django的request請求需要首先經過中介軟體處理,再通過url查詢到對應的views函式進行處理。在settings的middleware classes中 新增設定中介軟體進行啟用,大致原理如下圖所示 在使用django框架進行開發的過程中,遇到乙個問題 要求對覺得多數頁面請求reques...

Django 中介軟體 登入驗證

django的request請求需要首先經過中介軟體處理,再通過url查詢到對應的views函式進行處理。在settings的middleware classes中 新增設定中介軟體進行啟用,大致原理如下圖所示 在使用django框架進行開發的過程中,遇到乙個問題 要求對覺得多數頁面請求reques...

Django 中介軟體

django中的中介軟體是乙個輕量級 底層的外掛程式系統,可以介入django的請求和響應處理過程,修改django的輸入或輸出。中介軟體的執行過程如下圖所示 django在中介軟體中預置了五個方法,這五個方法的區別在於不同的階段執行,對輸入或輸出進行干預,方法如下 def init self pa...