Django缓存用法
1、全站缓存
#只需要在项目的配置文件中的中间件最开始和最后面加入
MIDDLEWARE = [
# 最开始的
'django.middleware.cache.UpdateCacheMiddleware',
.
.
.
.
.
#最后面的
'django.middleware.cache.FetchFromCacheMiddleware',
]
#这样就可以坐到全站缓存
2、单个视图缓存
#在views.py中导入
from django.views.decorators.cache import cache_page
#通过装饰器的方式加载需要缓存的视图函数前@cache_page(5)里面的参数是指缓存多少秒,这里是5秒
#在这5秒内数据都是从缓存里面取,5秒后再重新执行该视图函数,拿取最新数据
@cache_page(5)
def home(request):
print(111111)
tm = time.time()
return render(request,'home.html',{'tm':tm})
3、局部缓存
#在html代码中找到自己需要缓存的位置数据
#例如
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="utf-8">
<title>示例</title>
</head>
<body>
<h1>你好,世界!</h1>
<h1>最新时间{{ tm }}</h1>
<!--先加载-->
{% load cache %}
<!--5表示过期时间,单位秒,后面的“xx”表示该缓存的键,可自定义,如要从缓存取数据就用该键-->
{% cache 5 'xx' %}
<!--下面的h2标签里面的数据就是我要缓存的-->
<h2>{{ tm }}</h2>
{% endcache %}
</body>
</html>
4、关于缓存的配置
以上的所有缓存方式都可以配置缓存文件的位置,默认是缓存到客户端的内存中,也可自定义
-
缓存到本地文件中
-
#在settings.py文件中做如下配置 CACHES = { 'default': { 'BACKEND': 'django.core.cache.backends.filebased.FileBasedCache', 'LOCATION': 'D:\cc', # 缓存文件存放路径 } }
-
-
缓存到数据库中
-
CACHES = { 'default': { 'BACKEND': 'django.core.cache.backends.db.DatabaseCache', 'LOCATION': 'xx', # 数据库表 }, } #配置之后还需要在终端执行一下以下代码,目的是生成缓存数据库 python manage.py createcachetable
-
-
缓存到第三方缓存数据库中,例如redis,具体用法请看https://django-redis-chs.readthedocs.io/zh_CN/latest/
-
#先下载安装django-redis pip insatll django-redis CACHES ={ "default": { #默认 "BACKEND" : "django_redis.cache.RedisCache", "LOCATION": "redis://127.0.0.1:6379/0",#指定redis的第一个数据库 "OPTIONS: { "CLIENT_CLASS" : "django_redis.client.DefaultClient", } }, }
-

浙公网安备 33010602011771号