您的位置:首頁>正文

Django是web框架中最火的一款!教你從請求到回應到專案開發!

中介軟體要麼對來自使用者的資料進行預處理, 然後發送給應用;要麼在應用將回應負載返回給使用者之前, 對結果資料進行一些最終的調整。

通俗一點, 在django中, 中間能夠幫我們準備好request這個物件, 然後應用可以直接使用request物件獲取到各類資料, 也幫我們將response添加頭部, 狀態碼等。

資料流程

我們可以從源碼看出, process request 和 process response的執行載入順序正好是相反, 在迴圈中, process_request是被append到列表的末尾, 而process_request是被insert到最前面的。

解析 url

當_request_middleware列表中的 process_request 被遍歷完, 會得到一個經過處理的request物件(加入了request.session,request.user等屬性)。

django將按順序進行對url進行正則匹配, 如果匹配不成功, 就會拋出異常 django.core.urlresolvers.Resolver404。

這個方法的作用是判斷cookiers中是否存在csrf的欄位, 如果不存在, 會直接拋出異常, 如果存在, 返回None。

執行view邏輯

view函數需要滿足:

XFrameOptionsMiddleware將X-Frame-Options加入到response當中,防止網站被嵌套、被劫持。

總結

本文重點在於:

理解WSGI協議,並且WSGIHandler這個類控制整個請求到回應的流程,以及整個流程的基本過程。

中介軟體的概念,以及每一個process_request, process_response, process_view, process_exception方法在哪個步驟發揮著什麼樣的作用。

中間價的執行時有順序的,request與view是按照順序去執行的,而response和exception是反序的,這一步實在WSGIHandler在載入到它的各個列表的時候完成的。

XFrameOptionsMiddleware將X-Frame-Options加入到response當中,防止網站被嵌套、被劫持。

總結

本文重點在於:

理解WSGI協議,並且WSGIHandler這個類控制整個請求到回應的流程,以及整個流程的基本過程。

中介軟體的概念,以及每一個process_request, process_response, process_view, process_exception方法在哪個步驟發揮著什麼樣的作用。

中間價的執行時有順序的,request與view是按照順序去執行的,而response和exception是反序的,這一步實在WSGIHandler在載入到它的各個列表的時候完成的。

同類文章
Next Article
喜欢就按个赞吧!!!
点击关闭提示