Redis教程

Django中redis的使用(三)

本文主要是介绍Django中redis的使用(三),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

4.视图函数缓存

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)),
]

5.模板文件缓存

使用cache模板标记缓存模板片段

  1. 引入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 来唯一标识缓存片段来执行此操作

这篇关于Django中redis的使用(三)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!