django之页面缓存

一  全站缓存(全局缓存)

在settings中配置,主要就是两个中间件,需要注意的就是两个中间件的前后位置

MIDDLEWARE_CLASSES = (
            ‘django.middleware.cache.UpdateCacheMiddleware’, #第一
            'django.middleware.common.CommonMiddleware',
            ‘django.middleware.cache.FetchFromCacheMiddleware’, #最后
            )
# 以秒为单位,缓存事件
CACHE_MIDDLEWARE_SECONDS=10

二  单页面缓存

不需要在settings中配置,只在需要在需要缓存页面的视图函数上加装饰器

from django.views.decorators.cache import cache_page

# 装饰器加载视图函数上即可,括号中的数字为缓存时间,以秒为单位

@cache_page(5)
def time(request):
    import time
    ctime = time.time()
    return render(request,'time.html',locals())

三  页面局部缓存

不需要在setings中配置,在需要缓存的页面的局部中就加入一下内容:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<p>局部缓存:
    {% load cache %}
    {#第一个参数是时间,第二个参数是别名#}
    {% cache 5 'test' %}
        {{ ctime }}
    {% endcache %}
</p>
<p>没有缓存:
    {{ ctime }}
</p>


</body>
</html>

四  缓存的位置

CACHES = {
    'default': {
        'BACKEND': 'django.core.cache.backends.filebased.FileBasedCache',  # 指定缓存使用的引擎
        'LOCATION': 'D:\lqz\catch',  # 指定缓存的路径
        'TIMEOUT': 300,  # 缓存超时时间(默认为300秒,None表示永不过期)
        'OPTIONS': {
            'MAX_ENTRIES': 300,  # 最大缓存记录的数量(默认300)
            'CULL_FREQUENCY': 3,  # 缓存到达最大个数之后,剔除缓存个数的比例,即:1/CULL_FREQUENCY(默认3)
        }
    }
}

 

posted @ 2018-12-20 14:43  zhaijihai  阅读(1294)  评论(0编辑  收藏  举报