首页 > 其他 > 详细

Django的缓存

时间:2019-07-08 22:29:02      阅读:107      评论:0      收藏:0      [点我收藏+]

一,django缓存介绍

  由于django是一个动态的网站,所有每次请求均去数据库进行相关的操作,当网站的访问量大的时候,耗时就会很明显,因此django中利用缓存来解决耗时的问题,所谓缓存就是将某个方法的response暂时保存在内存或者是memcache中,一段时间再来访问,直接取出缓存中的response,就不再执行view中的方法。

二,使用方式

  a,在settings.py中配置:  

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

  ps:filebased.FileBasedCache 是将response以文件的形式缓存,使用不同的引擎,django的缓存方式不同。

  b,

    1:单页面缓存:在视图函数中加上一个装饰器:

from django.views.decorators.cache import cache_page
@cache_page(5)    # 5 代表缓存时间

     2:局部视图使用:

a. 引入TemplateTag

        {% load cache %}

    b. 使用缓存

        {% cache 5000 缓存key %}
            缓存内容
        {% endcache %}

    3:全局使用:

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

MIDDLEWARE = [
    django.middleware.cache.UpdateCacheMiddleware, # process_response
    django.middleware.security.SecurityMiddleware,
    django.contrib.sessions.middleware.SessionMiddleware,
    django.middleware.common.CommonMiddleware,
    django.middleware.csrf.CsrfViewMiddleware,
    django.contrib.auth.middleware.AuthenticationMiddleware,
    django.contrib.messages.middleware.MessageMiddleware,
    django.middleware.clickjacking.XFrameOptionsMiddleware,
    django.middleware.cache.FetchFromCacheMiddleware # process_request
]

 

Django的缓存

原文:https://www.cnblogs.com/ay742936292/p/11151161.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!