Django框架配置全站缓存、单独视图缓存、局部视图缓存

Django框架配置全站缓存、单独视图缓存、局部视图缓存

全站使用

使用中间件,经过一系列的认证等操作,如果内容在缓存中存在,则使用FetchFromCacheMiddleware获取内容并返回给用户,当返回给用户之前,判断缓存中是否已经存在,如果不存在则UpdateCacheMiddleware会将缓存保存至缓存,从而实现全站缓存

MIDDLEWARE = [
    'django.middleware.cache.UpdateCacheMiddleware',   # process_response 
    # 其他中间件...
    'django.middleware.cache.FetchFromCacheMiddleware',   # process_request 
]  

CACHE_MIDDLEWARE_ALIAS = ""
CACHE_MIDDLEWARE_SECONDS = ""
CACHE_MIDDLEWARE_KEY_PREFIX = ""

单独视图缓存

方式一:
    from django.views.decorators.cache import cache_page

    @cache_page(60 * 15)
    def my_view(request):
        ...

方式二:
    from django.views.decorators.cache import cache_page

    urlpatterns = [
        url(r'^foo/([0-9]{1,2})/$', cache_page(60 * 15)(my_view)),
    ]

局部视图使用

1. 引入TemplateTag

    {% load cache %}  {# 添加在模板的开头 #}

2. 使用缓存

    {% cache 5000 缓存key %}  {# 缓存时间5000s #}
        缓存内容
    {% endcache %}
分享到 :

发表评论

登录... 后才能评论