booktest29 中介軟體

2021-10-07 19:08:58 字數 2028 閱讀 2270

1.如果禁止某個ip訪問某個檢視函式,在檢視函式中加判斷

# exclude_ips=['127.0.0.1']

@blocked_ips

def test_middelware(request):

# userip = request.meta['remote_addr']

# print(userip)

# #禁止某些ip訪問

url(r'^test_middleware$', views.test_middelware),
4.如果有多個函式都要這個限制,也可以使用裝飾器,然後像上面那樣給每乙個要限制的檢視新增裝飾器

def blocked_ips(view_func):

userip = request.meta['remote_addr']

print(userip)

#禁止某些ip訪問

# 中介軟體類

class blockedipsmiddleware(middlewaremixin):

exclude_ips = ['127.0.0.1']

# 中介軟體函式

def process_view(self, request, view_func, *view_args, **view_kwargs):

'''檢視函式呼叫之前呼叫這個'''

userip = request.meta['remote_addr']

print(userip)

# 禁止某些ip訪問

6.在專案的setting.py裡面的中介軟體配置中註冊中介軟體類

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

'booktest.middleware.blockedipsmiddleware',#註冊中介軟體類

]

7.注釋掉所有的裝飾器,再次訪問,發現都會出現forbidden

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 中介軟...