概述
对于中等流量的网站来说,尽可能的减少开销是非常必要的。缓存数据就是为了保存那些需要很多计算资源的结果,这样就不必在下次请求消耗计算资源。Django自带了一个健壮的缓存系统来保存动态页面,避免对于每次请求都重新计算。Django提供了不同级别的缓存维度,可以缓存特定视图的输出、可以仅仅缓存那些很难生产出来的部分、或者可以缓存整个网站
设置缓存
通过设置决定数据缓存在哪里,是数据库中、文件系统中还是内存中。通过settions.py文件中的CACHE配置来实现。有两种方式:
第一种:缓存到内存
CACHES={
'default':{
'BACKEND':'django.core.cache.backends.locmem.LocMemCache',
'TIMEOUT':60,#缓存的过期时间,以秒为单位,默认值是300。如果设置成None表示永不会获取,如果设置成0会造成缓存立即失效
}
}
第二种:缓存到redis
首先安装:pip install django-redis-cache
CACHES={
'default':{
'BACKEND':'redis_cache.cache.RedisCache',
'LOCATION':"localhost:6379",
'TIMEOUT':60,
}
}
单个view缓存
在视图中,导入:
from django.views.decorators.cache import cache_page
在需要进行缓存的视图函数上添加如下装饰器即可:
@cache_page(60 * 2)#20分钟
视图函数
底层的缓存API
在视图中添加:
from django.core.cache import cache
视图函数中添加:
#设置
cache.set("需缓存的键","需缓存的值",有效时间)
#获取
cache.get("获取键")
#删除
cache.delete("删除键")
#清空
cache.clear()
模板片段缓存
使用cache标签进行缓存
在HTML文件中添加:
{%load cache%}
{%cache 60 缓存名字 %}
恭喜哦!成功了
{%endcache%}