W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
一旦緩存設置完畢,使用緩存最簡便的方式就是緩存整個站點。你需要在 ?MIDDLEWARE
?設置中添加 ?django.middleware.cache.UpdateCacheMiddleware
?和 ?django.middleware.cache.FetchFromCacheMiddleware
?,像下面這個例子一樣:
MIDDLEWARE = [
'django.middleware.cache.UpdateCacheMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.cache.FetchFromCacheMiddleware',
]
最后,在 Django 設置文件里添加下面的必需配置:
CACHE_MIDDLEWARE_ALIAS
?-- 用于存儲的緩存別名。CACHE_MIDDLEWARE_SECONDS
?-- 應緩存每個頁面的秒數(shù)。CACHE_MIDDLEWARE_KEY_PREFIX
?-- 如果使用相同的 ?Django installation
?,通過多站點進行緩存共享,請將此值設置為站點名,或者設置成在Django 實例中唯一的其他字符串,以此防止鍵沖突。如果你不介意,可以設置成空字符串。在請求和響應標頭允許的情況下,?FetchFromCacheMiddleware
?緩存狀態(tài)為200的 ?GET
?和 ?HEAD
?響應。對于具有不同查詢參數(shù)的相同URL的請求的響應被認為是單獨的頁面,并分別緩存。這個中間件期望一個?HEAD
?請求的響應頭與相應的GET請求具有相同的響應頭;在這種情況下,它可以為?HEAD
?請求返回一個緩存的?GET
?響應。
此外,?UpdateCacheMiddleware
?在每個 ?HttpResponse
?里會自動設置一些 ?headers
?,這會影響 下游緩存:
Expires header
? 為當前日期/時間加上定義的 ?CACHE_MIDDLEWARE_SECONDS
?Cache-Control header
? 為緩存頁面的最長時間,同樣,在 ?CACHE_MIDDLEWARE_SECONDS
? 里設置如果一個視圖設置了它自己的緩存過期時間(比如在它的 ?Cache-Control header
? 里有 ?max-age
? 部分),然后頁面將被緩存起來直到過期,而不是 ?CACHE_MIDDLEWARE_SECONDS
?。使用在 ?django.views.decorators.cache
? 的裝飾器,你可以很輕松的設置視圖的過期時間(使用 ?cache_control()
? 裝飾器)或者禁用視圖緩存(使用 ?never_cache()
? 裝飾器)。
如果設置 ?USE_I18N
?為 ?True
?,然后已生成的緩存鍵將包含動態(tài) ?language
?的名稱。這將允許你輕松緩存使用多語言的站點,而不用再創(chuàng)建緩存鍵。
當 ?USE_TZ
?被設置為 ?True
?時,緩存鍵也包括當前時區(qū)。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: