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