为什么Django的每站点缓存中间件对我不起作用?
我正在使用Django 1.3 beta 1,并设置了memcached。我根据Django的说明对我的settings.py
文件进行了修改:
CACHES = {
'default': {
'BACKEND': 'django.core.cache.backends.memcached.PyLibMCCache',
'LOCATION': '127.0.0.1:11211',
}
}
MIDDLEWARE_CLASSES = (
'django.middleware.cache.UpdateCacheMiddleware',
'django.middleware.common.CommonMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.middleware.cache.FetchFromCacheMiddleware',
#'debug_toolbar.middleware.DebugToolbarMiddleware',
)
CACHE_MIDDLEWARE_SECONDS = 100000
CACHE_MIDDLEWARE_KEY_PREFIX = 'site_cache'
这是我正在测试的视图函数:
def home(request):
print 'uncached'
# ...View's code...
我总是在开发服务器的输出中看到uncached
,而且每次都会访问数据库。为什么会这样?我是不是漏掉了什么,或者对缓存的理解完全错误?
编辑 #1:
模板片段缓存工作得很好。我是不是又漏掉了什么?请帮帮我。
1 个回答
0
看起来你的一切设置都没问题。根据文档,我能想到的唯一一个小问题是:
The cache middleware caches every page that doesn't have GET or POST parameters.
不过,我想你可能已经知道这个了,所以这对你可能没什么帮助。