W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
Django 提供很多裝飾器,它們可以為視圖支持多種 HTTP 特性。
在 ?django.views.decorators.http
? 中的裝飾器可以用來根據(jù)請求方法來限制對視圖的訪問。如果條件不滿足,這些裝飾器將返回 ?django.http.HttpResponseNotAllowed
? 。
裝飾器可以要求視圖只接受特定的請求方法。用法如下:
from django.views.decorators.http import require_http_methods
@require_http_methods(["GET", "POST"])
def my_view(request):
# I can assume now that only GET or POST requests make it this far
# ...
pass
注意請求方法應(yīng)該是大寫
裝飾器可以要求視圖只接受 GET 方法。
裝飾器可以要求視圖只接受 POST 方法。
裝飾器可以要求視圖只接收 GET 和 HEAD 方法。這些方法通常被認為是安全的,因為它們除了檢索請求的資源外,沒有特別的操作。
注解:Web 服務(wù)器自動刪除對 ?HEAD
?請求的相應(yīng)內(nèi)容,并保持頭部不變,所以你可以像處理視圖里的 ?GET
?請求一樣處理 ?HEAD
?請求。因為一些軟件依賴 ?HEAD
?請求(比如鏈接檢測器),因此你需要使用 ?require_safe
?而不是 ?require_GET
?。
下面 ?django.views.decorators.http
? 的裝飾器被用來控制特殊視圖中的緩存行為。
condition(etag_func=None, last_modified_func=None)
?etag(etag_func)
?last_modified(last_modified_func)
?這些裝飾器被用來生成 ?ETag
?和 ?Last-Modified
? 頭部
?django.views.decorators.gzip
? 里的裝飾器控制基于每個視圖的內(nèi)容壓縮。
如果瀏覽器允許 ?gzip
?壓縮,這個裝飾器會壓縮內(nèi)容。 它相應(yīng)地設(shè)置 ?Vary
?表頭,以便緩存將其存儲基于 ?Accept-Encoding
? 表頭。
?django.views.decorators.vary
? 中的裝飾器可用于控制基于特定請求標頭的緩存。
vary_on_cookie(func)
?vary_on_headers(*headers)
??Vary
?表頭定義了緩存機制在構(gòu)建其緩存鍵時應(yīng)考慮哪些請求表頭。
?django.views.decorators.cache
? 中的裝飾器控制服務(wù)器及客戶端的緩存。
這個裝飾器通過添加所有關(guān)鍵字參數(shù)來修補響應(yīng)的 ?Cache-Control
? 頭。
此裝飾器將 ?Expires
?表頭添加到當前日期/時間。
這個裝飾器在響應(yīng)中添加一個 ?Cache-Control: max-age=0, no-cache, no-store, must-revalidate, private
? 表頭,以指示永遠不應(yīng)該緩存頁面。
每個表頭僅在尚未設(shè)置時才添加。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: