Django學習筆記(十) 關於中介軟體的介紹

2021-08-21 21:17:33 字數 1277 閱讀 7597

在django處理的請求的各個處理階段,可以插入自己的邏輯

介於request與response處理之間的一道處理過程、輕量級

在全域性上改變django的輸入、輸出

從瀏覽器發出乙個請求requset,得到乙個響應後的內容httpresponse

每乙個請求都是先通過中介軟體中的process_requset函式

如果proocess_request函式返回none,繼續處理其他中介軟體

如果返回乙個httpresponse,就處理中止,返回網頁

***如果有人惡意訪問**,可以將他的ip加入黑名單

通常自定義的中介軟體放在最下面,

自帶的中介軟體順序不可倒置,上下可能存在依賴關係

1,在工程目錄下建立middleware目錄

2,在目錄中建立乙個python檔案

3,在python檔案中匯入中介軟體的基類

4,在類中根據功能需求,建立切入需求類,重寫切入點方法

from django.shortcuts import render

from django.utils.deprecation import middlewaremixin

class mymiddleware(middlewaremixin):

def process_request(self,req):

white_ips = [

'10.3.133.30',

.......

]if ip in white_ips:

return render(req,'home.html',)

5,啟用中介軟體,在settings中進行配置,middleware中新增middleware.檔名.類名

此方法用於在請求到來時處理請求

process_view

在本次將要執行view函式被呼叫前處理請求

process_template_response

在檢視view剛好執行完畢之後呼叫

process_exception

在view函式丟擲異常的時候被呼叫

process_response

在執行完view函式準備傳送響應到客戶端之前呼叫

JMeter學習(十)關聯

話說loadrunner有的一些功能,比如 引數化 檢查點 集合點 關聯,jmeter也都有這些功能,只是功能可能稍弱一些,今天就關聯來講解一下。jmeter的關聯方法有兩種 後置處理器 正規表示式提取器與xpath extractor。第一種方法 正規表示式提取器 在需要獲得資料的上乙個請求上右擊...

c Primer筆記(十 關聯容器)

第十章 關聯容器。set map multimap multiset 鍵是唯讀的,試圖修改只有出錯的份 1.關聯容器和順序容器的本質差別在於 關聯容器通過key鍵儲存和讀取元素,而順序容器則通過元素在容器中的位置順序儲存和訪問元素。2.set僅僅包含乙個鍵,並有效的支援關於某個鍵是否存在的查詢。即儲...

objective c 十 關於巨集的使用

在objective c中,有一種類似於jsp小指令碼的東西,叫做巨集。這種東西實際上就是在編譯是才對實際使用的值與物件進行確認,主要針對的是編譯過程。預編譯的乙個使用是 define 巨集名稱 值 在以上是定義乙個類似於記憶體的東西。巨集名稱是自定義的。可以等同於變數名,有不成文的約定是使用全部大...