Django缓存机制

Posted cao123

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Django缓存机制相关的知识,希望对你有一定的参考价值。


django的缓存

在动态网站中,用户所有的请求,服务器都会去数据库中进行相应的增,删,查,改,渲染模板,执行业务逻辑,最后生成用户看到的页面.

当一个网站的用户访问量很大的时候,每一次的的后台操作,都会消耗很多的服务端资源,所以必须使用缓存来减轻后端服务器的压力.

缓存是将一些常用的数据保存内存或者memcache中,在一定的时间内有人来访问这些数据时,则不再去执行数据库及渲染等操作,而是直接从内存或memcache的缓存中去取得数据,然后返回给用户.

https://www.cnblogs.com/liuqingzheng/articles/9803351.html

Django中的6种缓存方式

  • 开发调试缓存
  • 内存缓存
  • 文件缓存
  • 数据库缓存
  • Memcache缓存(使用python-memcached模块)
  • Memcache缓存(使用pylibmc模块)

经常使用的有文件缓存和Mencache,redis缓存

1.全站缓存:

在setting中配置:
两个中间件:
MIDDLEWARE = [
# 放页面的时候,应该放在最前面,放缓存response
‘django.middleware.cache.UpdateCacheMiddleware‘,
   ‘django.middleware.common.CommonMiddleware‘,
‘django.middleware.cache.FetchFromCacheMiddleware‘,
# 取页面放在这个位置,最后,取缓存,request
]

# 以秒为单位缓存时间
CACHE_MIDDLEWARE_SECONDS = 10


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

2.单页面缓存:

在view——视图层中
from
django.views.decorators.cache import cache_page 装饰器加在视图函数上即可 缓存5秒 @cache_page(5)

3.页面局部缓存:

在templete中:

       {% load cache %}
            #第一个参数是缓存时间,第二个参数是别名
            {% cache 5 test %}
            缓存的时间:
            {{ ctime }}
            {% endcache %}

 

 



























以上是关于Django缓存机制的主要内容,如果未能解决你的问题,请参考以下文章

django-缓存机制,form组件

django缓存机制

Django缓存机制

Django中的缓存机制

Django 之 缓存机制

Django的缓存机制和信号