8
2012
django支持整站缓存,也叫站点级缓存
指定CACHE_BACKEND,缓存整个网站,也就是所有不包含GET,POST参数的页面在第一次被请求之后就自动被缓存指定时间(timeout决定)
激活站点缓存
修改settings.py,MIDDLEWARE_CLASSES中添加
django.middleware.cache.UpdateCacheMiddleware
django.middleware.cache.FetchFromCacheMiddleware
如下所示
注意添加位置 MIDDLEWARE_CLASSES对添加位置有要求,Update行必须在第一行,Fetch行必须在最后一行,更多顺序规则请参看https://docs.djangoproject.com/en/1.4/topics/cache/#order-of-middleware-classes
MIDDLEWARE_CLASSES = (
'django.middleware.cache.UpdateCacheMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.cache.FetchFromCacheMiddleware',
)
在settings.py中添加如下缓存配置项
CACHE_MIDDLEWARE_ALIAS #缓存别名
CACHE_MIDDLEWARE_SECONDS #缓存时间
CACHE_MIDDLEWARE_KEY_PREFIX #缓存前缀,区别公用一个django环境的其他站点
如果CACHE_MIDDLEWARE_ANONYMOUS_ONLY 被设置为true,则只有匿名请求页面被缓存
使用CACHE_MIDDLEWARE_ANONYMOUS_ONLY 注意需要激活AuthenticationMiddleware,也就是在你的配置文件MIDDLEWARE_CLASSES 的地方, AuthenticationMiddleware 必须出现在 CacheMiddleware 前面
MIDDLEWARE自动在httpresponse完成的工作
设置Last-Modified
设置Expires
设置Cache-Control
Middleware设置的过期时间可以通过修饰器方式修改,或者页面使用自己的缓存设置,如有一个max-age在Cache-Control中设置
django.views.decorators.cache 使用cache_control设置过期时间或者使用never_cache取消缓存
本文连接地址: http://www.fresker.com/old2/archives/564 (转载注明出处)
目前暂无评论