Django資料之中介軟體

2021-09-29 00:24:55 字數 1743 閱讀 6181

django 中的中介軟體(middleware)其實就是乙個類,在請求到來和結束後,django會根據自己的規則在合適的時機執行中介軟體中相應的方法。

在django專案的settings模組中,有乙個 middleware_classes 變數,其中每乙個元素就是乙個中介軟體。

middleware = [

'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',

]

中介軟體中可以定義四個方法,分別是:

以上方法的返回值可以是none和httpresonse物件,如果是none,則繼續按照django定義的規則向下執行,如果是httpresonse物件,則直接將該物件返回給使用者。

1、建立中介軟體類

class requestexeute(object):

def process_request(self,request):

pass

def process_view(self, request, callback, callback_args, callback_kwargs):

pass

def process_exception(self, request, exception):

pass

def process_response(self, request, response):

return response

2、註冊中介軟體

middleware_classes = (

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

'django.middleware.common.commonmiddleware',

'django.middleware.csrf.csrfviewmiddleware',

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

'django.contrib.auth.middleware.sessionauthenticationmiddleware',

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

'django.middleware.clickjacking.xframeoptionsmiddleware',

'workstation.middleware.auth.requestexeute',

)

Django之中介軟體

django中的中介軟體 middleware 在django中,中介軟體其實就是乙個類,在請求到來和結束後,django會根據自己的規則在合適的時機執行中介軟體中相應的方法。在django專案的settings模組中,有乙個middleware classes變數,其中每乙個元素就是乙個中介軟體 ...

Django 之 中介軟體

使用裝飾器繞過中介軟體csrf token 從全域性角度改變 django 框架的輸入和輸出 不宜過多 不宜太複雜 middleware 模組名為 mymiddlewares,類名為 md1 mymiddlewares.md1 from django.utils.deprecation import...

django之中介軟體

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