一 全站緩存(全局緩存)
在settings中配置,主要就是兩個中間件,需要注意的就是兩個中間件的前后位置
MIDDLEWARE_CLASSES = ( ‘django.middleware.cache.UpdateCacheMiddleware’, #第一 'django.middleware.common.CommonMiddleware', ‘django.middleware.cache.FetchFromCacheMiddleware’, #最后 )
# 以秒為單位,緩存事件 CACHE_MIDDLEWARE_SECONDS=10
二 單頁面緩存
不需要在settings中配置,只在需要在需要緩存頁面的視圖函數上加裝飾器
from django.views.decorators.cache import cache_page # 裝飾器加載視圖函數上即可,括號中的數字為緩存時間,以秒為單位 @cache_page(5) def time(request): import time ctime = time.time() return render(request,'time.html',locals())
三 頁面局部緩存
不需要在setings中配置,在需要緩存的頁面的局部中就加入一下內容:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <p>局部緩存: {% load cache %} {#第一個參數是時間,第二個參數是別名#} {% cache 5 'test' %} {{ ctime }} {% endcache %} </p> <p>沒有緩存: {{ ctime }} </p> </body> </html>
四 緩存的位置
CACHES = { 'default': { 'BACKEND': 'django.core.cache.backends.filebased.FileBasedCache', # 指定緩存使用的引擎 'LOCATION': 'D:\lqz\catch', # 指定緩存的路徑 'TIMEOUT': 300, # 緩存超時時間(默認為300秒,None表示永不過期) 'OPTIONS': { 'MAX_ENTRIES': 300, # 最大緩存記錄的數量(默認300) 'CULL_FREQUENCY': 3, # 緩存到達最大個數之后,剔除緩存個數的比例,即:1/CULL_FREQUENCY(默認3) } } }