實現緩存的方式,有多種:本地內存緩存,數據庫緩存,文件系統緩存。這里介紹使用Redis數據庫進行緩存。
配置
1 CACHES = { 2 "default": { 3 "BACKEND": "django_redis.cache.RedisCache", 4 "LOCATION": "redis://127.0.0.1:6379/1", 5 "OPTIONS": { 6 "CLIENT_CLASS": "django_redis.client.DefaultClient", 7 "PASSWORD": "mysecret",
8 "CONNECTION_POOL_KWARGS": {"max_connections": 100} # 連接池最大連接數
9 }}}
在settings.py配置完后執行 python manage.py createcachetable
緩存有站點緩存,和單個view緩存
站點緩存:
1 MIDDLEWARE = [ 2 # 站點緩存 , 注意必須在第一個位置 3 'django.middleware.cache.UpdateCacheMiddleware', 4 ... 5 # 站點緩存, 注意必須在最后一個位置 6 'django.middleware.cache.FetchFromCacheMiddleware', 7 ]
視圖緩存:
1 from django.shortcuts import render 2 from django.views.decorators.cache import cache_page 4 from cache.models import Foo 6 # 在需要緩存的視圖上添加裝飾器, 參數是設置timeout 超時時間, 單位是秒, 7 @cache_page(60) 8 def index(request): 9 bar = Foo.objects.all() 10 return render(request, 'cache/index.html', {'bar': bar})