大部分的内容都在文档里说的很清楚了:Django’s cache framework

需要的注意的是,要在settings.py文件中添加中间件。

MIDDLEWARE = [
    'django.middleware.cache.UpdateCacheMiddleware',           # 更新缓存
    'django.middleware.security.SecurityMiddleware',
    'django.middleware.common.CommonMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
    'django.middleware.cache.FetchFromCacheMiddleware',        # 获取缓存
]

另一个让我烦恼一个多小时的问题是,设置TIMEOUT参数无效。查找Django的源文件(./core/cache/backends/memcached.py),打印出设置缓存时的信息。发现不论参数设置多少,缓存的有效期都变成了600s。

后来终于在django的conf/global_settings.py这个文件里找到CACHE_MIDDLEWARE_SECONDS = 600这个参数。看名字是中间件的缓存时间,懒得深究了。在settings.py文件中把这个参数值也修改一下,再次测试,终于得到预期的效果。这个问题竟然在放狗都没搜到,值得一记。