實現緩存的方式,有多種,本地內存緩存,數據庫緩存,文件系統緩存。這里介紹使用Redis數據庫進行緩存。
環境
redis
django-redis
配置
settings.py
CACHES={"default":{"BACKEND":"django_redis.cache.RedisCache","LOCATION":"redis://127.0.0.1:6379/1","OPTIONS":{"CLIENT_CLASS":"django_redis.client.DefaultClient","PASSWORD":"mysecret"
}
}
}
pythonmanage.pycreatecachetable1
緩存有站點緩存,和單個view緩存
站點緩存:
settings.py
MIDDLEWARE=[#站點緩存,注意必須在第一個位置
'django.middleware.cache.UpdateCacheMiddleware',
...#站點緩存,注意必須在最后一個位置
'django.middleware.cache.FetchFromCacheMiddleware',
]
視圖緩存:
views.py
fromdjango.shortcutsimportrenderfromdjango.views.decorators.cacheimportcache_pagefromcache.modelsimportFoo#在需要緩存的視圖上添加裝飾器,參數是設置timeout超時時間,單位是秒,@cache_page(60)defindex(request):
bar=Foo.objects.all()returnrender(request,'cache/index.html',{'bar':bar})