码迷,mamicode.com
首页 > 其他好文 > 详细

django中间件 缓存

时间:2017-09-22 22:32:20      阅读:128      评论:0      收藏:0      [点我收藏+]

标签:image   判断   应用   out   too   cond   bar   最大   backend   

1,配置缓存


CACHES = {
‘default‘: {
‘BACKEND‘: ‘django.core.cache.backends.filebased.FileBasedCache‘, #引擎
‘LOCATION‘: ‘d:\\django_cache‘,
‘TIMEOUT‘: 300, # 缓存超时时间(默认300,None表示永不过期,0表示立即过期)
‘OPTIONS‘: {
‘MAX_ENTRIES‘: 300, # 最大缓存个数(默认300)
‘CULL_FREQUENCY‘: 3, # 缓存到达最大个数之后,剔除缓存个数的比例,即:1/CULL_FREQUENCY(默认3)
},
# ‘KEY_PREFIX‘: ‘‘, # 缓存key的前缀(默认空)
# ‘VERSION‘: 1, # 缓存key的版本(默认1)
# ‘KEY_FUNCTION‘ 函数名 # 生成key的函数(默认函数会生成为:【前缀:版本:key】)
}
}


2,应用缓存
单独视图
    方式一:
        from django.views.decorators.cache import cache_page

        @cache_page(60 * 15)  #缓存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)),
        ]
    a. 引入TemplateTag

        {% load cache %}

    b. 使用缓存

        {% cache 5000 缓存key %}     #缓存5000秒,缓存key
            缓存内容
        {% endcache %}
   使用中间件,经过一系列的认证等操作,如果内容在缓存中存在,则使用FetchFromCacheMiddleware获取内容并返回给用户,当返回给用户之前,
判断缓存中是否已经存在,如果不存在则UpdateCacheMiddleware会将缓存保存至缓存,从而实现全站缓存 MIDDLEWARE = [ ‘django.middleware.cache.UpdateCacheMiddleware‘, #只有repone # 其他中间件... ‘django.middleware.cache.FetchFromCacheMiddleware‘, #只有request 如果有不需要缓存的可以继承他,匹配路径 return None ]
# CACHE_MIDDLEWARE_SECONDS = 10这个设置只针对上面。缓存10秒。它的优先级更高
   
CACHE_MIDDLEWARE_ALIAS = "" CACHE_MIDDLEWARE_SECONDS = "" CACHE_MIDDLEWARE_KEY_PREFIX = ""


技术分享

 

注意

django中间件 缓存

标签:image   判断   应用   out   too   cond   bar   最大   backend   

原文地址:http://www.cnblogs.com/tiantao36/p/7577204.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!