一旦缓存设置完毕,使用缓存最简便的方式就是缓存整个站点。你需要在 MIDDLEWARE 设置中添加 django.middleware.cache.UpdateCacheMiddleware和 django.middleware.cache.FetchFromCacheMiddleware,像下面这个例子一样:
MIDDLEWARE = [
'django.middleware.cache.UpdateCacheMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.cache.FetchFromCacheMiddleware',
]
最后,在 Django 设置文件里添加下面的必需配置:
CACHE_MIDDLEWARE_ALIAS -- 用于存储的缓存别名。CACHE_MIDDLEWARE_SECONDS -- 应缓存每个页面的秒数。CACHE_MIDDLEWARE_KEY_PREFIX -- 如果使用相同的 Django installation ,通过多站点进行缓存共享,请将此值设置为站点名,或者设置成在Django 实例中唯一的其他字符串,以此防止键冲突。如果你不介意,可以设置成空字符串。在请求和响应标头允许的情况下,FetchFromCacheMiddleware 缓存状态为200的 GET 和 HEAD 响应。对于具有不同查询参数的相同URL的请求的响应被认为是单独的页面,并分别缓存。这个中间件期望一个HEAD请求的响应头与相应的GET请求具有相同的响应头;在这种情况下,它可以为HEAD请求返回一个缓存的GET响应。
此外,UpdateCacheMiddleware 在每个 HttpResponse 里会自动设置一些 headers,这会影响 下游缓存:
Expires header 为当前日期/时间加上定义的 CACHE_MIDDLEWARE_SECONDS Cache-Control header 为缓存页面的最长时间,同样,在 CACHE_MIDDLEWARE_SECONDS 里设置如果一个视图设置了它自己的缓存过期时间(比如在它的 Cache-Control header 里有 max-age 部分),然后页面将被缓存起来直到过期,而不是 CACHE_MIDDLEWARE_SECONDS 。使用在 django.views.decorators.cache 的装饰器,你可以很轻松的设置视图的过期时间(使用 cache_control() 装饰器)或者禁用视图缓存(使用 never_cache() 装饰器)。
如果设置 USE_I18N 为 True,然后已生成的缓存键将包含动态 language 的名称。这将允许你轻松缓存使用多语言的站点,而不用再创建缓存键。
当 USE_TZ 被设置为 True 时,缓存键也包括当前时区。
备案信息: 粤ICP备15087711号-2
Copyright © 2008-2024 啊嘎哇在线工具箱 All Rights.
本站所有资料来源于网络,版权归原作者所有,仅作学习交流使用,如不慎侵犯了您的权利,请联系我们。