Django中间件学习-Cache缓存
中间件缓存的代码在 django/middleware/cache.py 文件里面
使用缓存中间件的时候,必须进行如下配置
MIDDLEWARE = [
'django.middleware.cache.UpdateCacheMiddleware',
...
'django.middleware.cache.FetchFromCacheMiddleware'
]
UpdateCacheMiddleware 将response缓存起来
FetchFromCacheMiddleware 将缓存的response取出来
UpdateCacheMiddleware 功能逻辑
判断request._cache_update_cache 是否为 True,_cache_update_cache 的值在 FetchFromCacheMiddleware 中设置的
if not self._should_update_cache(request, response):
# We don't need to update the cache, just return.
return response
def _should_update_cache(self, request, response):
return hasattr(request, '_cache_update_cache') and request._cache_update_cache
response的状态不为 200 和 304,request 和 response