前端混合开发缓存的使用
-缓存的位置,通过配置文件来操作(以文件为例)
-缓存的粒度:
-全站缓存
中间件
MIDDLEWARE = [
'django.middleware.cache.UpdateCacheMiddleware', #这个中间件必须放在第一个,表示经过视图函数响应之后给前端,在缓存里发一份
。。。。
'django.middleware.cache.FetchFromCacheMiddleware', # 这个必须放在最后一个,是请求来的时候最后看缓存有没有,有就直接返回前端页面
]
CACHE_MIDDLEWARE_SECONDS=10 # 全站缓存时间
-单页面缓存
在视图函数上加装饰器
from django.views.decorators.cache import cache_page
@cache_page(5) # 缓存5s钟
def test_cache(request):
import time
ctime=time.time()
return render(request,'index.html',context={'ctime':ctime})
-页面局部缓存
{% load cache %}
{% cache 5 'name' %} # 5表示5s钟,name是唯一key值
{{ ctime }}
{% endcache %}
前后端分离缓存的使用
如何使用:在视图函数中导入模块,然后正常调用cache的get和set方法就行,先调set把需要缓存的value缓存起来,在调get获取
from django.core.cache import cache
cache.set('key',value可以是任意数据类型)
cache.get('key')
应用场景:
-第一次查询所有图书,你通过多表联查序列化之后的数据,直接缓存起来
-后续,直接先去缓存查,如果有直接返回,没有,再去连表查,返回之前再缓存
标签:缓存,ctime,get,cache,视图,django,机制
From: https://www.cnblogs.com/suncolor/p/16836965.html