• Django缓存机制


    Django中的缓存方式

    缓存方式:缓存的位置

    1. 开发调试缓存:没有缓存

    2. 缓存到内存中

    3. 缓存到数据库

    4. 缓存到文件

    5. 缓存到redis

    缓存位置的配置(在setting中配置,BACKEND不同,缓存的位置不同)

    文件缓存setting

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

    缓存粒度

    1. 全站缓存

    2. 单页面缓存

    3. 局部缓存

    缓存的使用

    需要配置setting文件,将CACHE配置进去

    单页面缓存:

    from django.views.decorators.cache import cache_page
    import time
    from .models import *
    
    @cache_page(15)          #超时时间为15秒
    def index(request):
      t=time.time()      #获取当前时间
      bookList=Book.objects.all()
      return render(request,"index.html",locals())
    

    全站缓存:

    缓存整个站点,是最简单的缓存方法
    
    在 MIDDLEWARE_CLASSES 中加入 “update” 和 “fetch” 中间件
    MIDDLEWARE_CLASSES = (
        ‘django.middleware.cache.UpdateCacheMiddleware’, #第一
        'django.middleware.common.CommonMiddleware',
        ‘django.middleware.cache.FetchFromCacheMiddleware’, #最后
    )
    “update” 必须配置在第一个
    “fetch” 必须配置在最后一个
    

    局部缓存:

    {% load cache %}
    {% cache 5 'test'%}    第一个参数表示缓存时间,第二个参数是key值(取缓存的时候,需要根据key值取)
    	当前时间:{{ time }}
    {% endcache %}
    

    高级用法:

    前后端分离项目

    # 设置值与取值
    cache.set('test_data',{'name':'lqz','age':18},5)
    cache.get('test_data')
    
  • 相关阅读:
    parse_str() 函数把查询字符串解析到变量中。
    ThinkPHP函数详解:L方法
    ThinkPHP函数详解:F方法
    PHP defined() 函数
    Ajax beforeSend和complete 方法
    mdb文件怎么打开
    网盘资料
    win7下IIS的安装和配置
    perl5 第十一章 文件系统
    perl5 第十章 格式化输出
  • 原文地址:https://www.cnblogs.com/majingjie/p/11151694.html
Copyright © 2020-2023  润新知