Django 中介軟體

2022-08-21 04:33:11 字數 1081 閱讀 4266

在django中就是乙個類,在全域性範圍內改變django的輸入和輸出。

五個方法

csrf中介軟體

csrf 跨站請求偽造

補充兩個裝飾器:

from django.views.decorators.csrf import csrf_exempt,csrf_protect

csrf_exempt 給檢視加上裝飾器後,當前的檢視不需要csrf校驗

csrf_protect 給檢視加上裝飾器後,當前的檢視需要csrf校驗

process_request:

從cookie中獲取csrftoken的值 —— 》 request.meta['csrf_cookie']

process_view

檢視函式加上csrf_exempt裝飾器,不進行csrf校驗

請求方式 是'get', 'head', 'options', 'trace' 也不進行校驗

csrf_token = request.meta.get('csrf_cookie') # cookie中獲取csrftoken的值

request_csrf_token = request.post.get('csrfmiddlewaretoken', '')

如果或許不到csrfmiddlewaretoken的值

再嘗試從請求頭中獲取x_csrftoken的值 —— 》request_csrf_token

request_csrf_token 和 csrf_token 進行比較

能比較成功 通過校驗

不能比較成功 拒絕

定義中介軟體

寫乙個 py 檔案

定義乙個類 繼承middlewaremixin 類

from django.utils.deprecation import middlewaremixin

Django 中介軟體

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

Django中介軟體

給檢視函式加裝飾器判斷使用者是否登入,把沒有登入的請求跳轉到登入頁面,我們通過給幾個特定檢視函式加裝飾器實現了這個需求,但是這樣做比較繁瑣,用django中的中介軟體會比較簡潔 什麼是中介軟體 中介軟體是幫助我們再檢視函式執行之前和執行之後都可以做一些額外的操作,它本質上就是乙個自定義類,類中定義了...

Django中介軟體

什麼是中介軟體?django中的中介軟體是乙個輕量級 底層的外掛程式系統,可以介入django的請求和響應處理過程,修改django的輸入或輸出。中介軟體的設計為開發者提供了一種無侵入式的開發方式,增強了django框架的健壯性。我們可以使用中介軟體,在django處理檢視的不同階段對輸入或輸出進行...