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物件。或者你想修...