一個(gè)動(dòng)態(tài)網(wǎng)站的基本權(quán)衡點(diǎn)就是,它是動(dòng)態(tài)的。每次用戶請(qǐng)求頁(yè)面,服務(wù)器會(huì)重新計(jì)算。從開銷處理的角度來(lái)看,這比你讀取一個(gè)現(xiàn)成的標(biāo)準(zhǔn)文件的代價(jià)要昂貴的多。
這就是需要緩存的地方。
Django 自帶了一個(gè)健壯的緩存系統(tǒng)來(lái)保存動(dòng)態(tài)頁(yè)面這樣避免對(duì)于每次請(qǐng)求都重新計(jì)算。方便起見(jiàn),Django 提供了不同級(jí)別的緩存粒度:可以緩存特定視圖的輸出、可以僅僅緩存那些很難生產(chǎn)出來(lái)的部分、或者可以緩存整個(gè)網(wǎng)站 Django 也能很好的配合那些“下游”緩存, 比如 Squid 和基于瀏覽器的緩存。這里有一些緩存不必要直接去控制但是可以提供線索, (via HTTPheaders)關(guān)于網(wǎng)站哪些部分需要緩存和如何緩存。
設(shè)置緩存:
緩存系統(tǒng)需要一些設(shè)置才能使用。 也就是說(shuō),你必須告訴他你要把數(shù)據(jù)緩存在哪里- 是數(shù)據(jù)庫(kù)中,文件系統(tǒng)或者直接在內(nèi)存中。這個(gè)決定很重要,因?yàn)樗鼤?huì)影響你的緩存性能,是的,一些緩存類型要比其他的緩存類型更快速。
你的緩存配置是通過(guò) setting 文件的 CACHES 配置來(lái)實(shí)現(xiàn)的。這里有 CACHES 所有可配置的變量值。