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