• 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:lqzcatch',  # 指定缓存的路径
            'TIMEOUT': 300,  # 缓存超时时间(默认为300秒,None表示永不过期)
            'OPTIONS': {
                'MAX_ENTRIES': 300,  # 最大缓存记录的数量(默认300)
                'CULL_FREQUENCY': 3,  # 缓存到达最大个数之后,剔除缓存个数的比例,即:1/CULL_FREQUENCY(默认3)
            }
        }
    }
  • 相关阅读:
    【Electron】Electron 调试
    正则表达式中test、exec、match的区别
    $.extend 与Object.assign的相同与不同
    【Vue】v-for中为什么要用key——diff算法中key作用源码
    【Vue】watch中的deep:true源码实现
    【Vue】vue中computed源码详解
    Network conditions——在不同网络条件下优化性能
    JS中的{}、()、自调用及()=>({})写法含义
    innerHTML和outerHTML区别以及document.querySelector
    SignalR
  • 原文地址:https://www.cnblogs.com/zhaijihai/p/10149271.html
Copyright © 2020-2023  润新知