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缓存机制的主要内容,如果未能解决你的问题,请参考以下文章