django之頁面快取
阿新 • • 發佈:2018-12-20
一 全站快取(全域性快取)
在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) } } }