1.通过装饰器cache_page
@cache_page # cache_page用于视图缓存 def view_cache_test(request): t=time.time() return HttpResponse(f'全站缓存测试,时间戳:{t}')
注意:把全站缓存去掉
说明:
cache_page除了默认的timeout参数外,还有两个可选的关键字参数
cache,示例代码:@cache_page(60 * 15, cache="special_cache"), 该cache指向settings中配置的缓存的名称,默认是"default"
key_prefix:缓存key的前缀,与CACHE_MIDDLEWARE_KEY_PREFIX功能相同
如果多个url指向同一个视图函数,会为每个url建立一个单独的缓存
urlpatterns = [ path('momo/<int:i>/', views.index), ]
/momo/1/ 和/momo/23/ 请求会分别进行缓存
2.
通过urls中配置cache_page
在URLconf中指定视图缓存,而不是在视图函数上硬编码装饰器,可以进一步解耦缓存和视图函数之间的关系,使用起来更灵活
from django.views.decorators.cache import cache_page urlpatterns = [ path('index/', cache_page(60 * 15)(views.index)), ]
使用cache模板标记缓存模板片段
引入TemplateTag
{% load cache %}
2. 使用缓存
{% cache 5000 cache_key %} 缓存内容 {% endcache %}
说明:
cache最少两个参数:
5000: 缓存超时时间,单位秒,如果为None,那么就是永久缓存
cache_key:缓存的key,不能使用变量,只是一个字符串(不要引号),相当于CACHE_MIDDLEWARE_KEY_PREFIX
注意:可以通过将一个或多个附加参数(可以是带或不带过滤器的变量,变量个数可以是多个,如:{% cache 500 sidebar num,year ... %})传递给 cache 来唯一标识缓存片段来执行此操作