django 七 中介軟體的處理

2021-09-22 10:20:04 字數 2090 閱讀 8066

比如這裡要新增乙個統計響應時間的功能

新建乙個middlewares.py (student_sys/student/middlewares.py)

import time

from django.urls import reverse

from django.utils.deprecation import middlewaremixin

class

timeitmiddleware

(middlewaremixin)

:def

process_request

(self,request)

: strs =

"1. 處理requset請求,第乙個被呼叫,"

"處理request中認證頭之類"

print

(strs)

return

defprocess_view

(self,request,func,

*args,

**kwargs)

: strs =

"2. 用於view處理,其中func即是呼叫的view"

print

(strs)

if request.path != reverse(

'index'):

return

none

start = time.time(

)#這裡呼叫了view做處理

response = func(request)

costed = time.time(

)- start

print

("process view used %d seconds"

%(costed,))

return response

defprocess_exception

(self,request,exception)

: strs =

"0. 用來處理全部流程中的異常"

print

(strs)

pass

defprocess_template_response

(self,request,response)

: strs =

"3. 如果處理渲染模板使用了render,就會呼叫到這裡"

print

(strs)

return response

defprocess_response

(self,request,response)

: strs =

"4. 所有的流程執行完後會返回response給瀏覽器,在返回之前會呼叫到這裡"

print

(strs)

return response

修改setting.py

middleware =

['student.middlewares.timeitmiddleware'

,'django.middleware.security.securitymiddleware'

,'django.contrib.sessions.middleware.sessionmiddleware'

,'django.middleware.common.commonmiddleware'

,'django.middleware.csrf.csrfviewmiddleware'

,'django.contrib.auth.middleware.authenticationmiddleware'

,'django.contrib.messages.middleware.messagemiddleware'

,'django.middleware.clickjacking.xframeoptionsmiddleware'

,]

在瀏覽器上重新整理頁面觀察後台輸出

13 2 7 中介軟體

中介軟體顧名思義,是介於request與response處理之間的一道處理過程,相對比較輕量級,並且在全域性上改變django的輸入與輸出。因為改變的是全域性,所以需要謹慎實用,用不好會影響到效能。如果你想修改請求,例如被傳送到view中的httprequest物件。或者你想修改view返回的htt...

21 中介軟體

一 中介軟體的定義 1.中介軟體是django請求 響應處理的鉤子框架,它是乙個輕量級的 低階的 外掛程式 系統,用於全域性改變django的輸入或輸出 2.中介軟體以類的形式體現 3.每個中介軟體元件負責做一些特定的功能,例如django包含乙個中介軟體元件 authenticationmiddl...

07 中介軟體

5 獲取的資料會交給最後乙個中介軟體的process response方法處理,然後依次向前面的中介軟體process response 6 在任一中介軟體的process request和process view方法中有返回值就會直接返回給process response 3 檢視函式 4 中介軟...