Django学习之 view 缓存详解

本文和大家分享的主要是django view 缓存相关内容,一起来看看吧,希望对大家学习django有所帮助。

view 缓存

  要实现view 缓存,我们只需调用cache_page装饰器即可

django.views.decorators.cache.cache_page()

django.views.decorators.cache 中的 cache_page 装饰器会自动缓存view response, 使用简单

示例

from django.views.decorators.cache import cache_page

@cache_page(60 * 15)

def my_view(request):

...

如下特点

扫描二维码关注公众号,回复: 2869333 查看本文章

1)多个 URL 指向同一个 view, 会被分别缓存

2)第一个参数是缓存 timeout

3)可选参数:

cache: 可指定缓存 (默认使用 default 缓存)

key_prefix:  功能与 CACHE_MIDDLEWARE_KEY_PREFIX 一样会与 CACHES 中的KEY_PREFIX 串联

  除了在view方法上使用cache_page 装饰器以外也可以在 URLconf 中使用 cache_page 装饰器:

示例

from django.views.decorators.cache import cache_page

urlpatterns = [

url(r'^foo/([0-9]{1,2})/$', cache_page(60 * 15)(my_view)),

]

演示环境说明

1、操作系统Ubuntu

2、数据库MySQL

3Django 版本 1.8

4IDE PyCharmVIM

站点缓存演示

  首先进入settings文件,配置好缓存后端,本次演示使用的是redis缓存后端

  配置MIDDLEWARE_CLASSES,首先将update这个中间件放在MIDDLEWARE_CLASSES前面,然后将fetch中间件放在最后

  配置好缓存中间件以后,还可以配置我们所需的参数。这里的示例介绍将seconds设置为3600_key_prefix设置为SeteCache,在以后生成的key里面,SeteCache将会作为一个标志

启动站点

  站点启动好后可以通过浏览器访问我们的网站,这样是可以访问成功的,并可以进行点击

  查看Redis内容,需要指定数据库ID,下图中两个cache_page,会缓存_header_pagesitecache是刚刚设置的缓存标志,已经自动被加到这里面了

  尝试修改代码,因为缓存是有一个过期时间的,缓存没有过期之前,我们访问的数据都不会更新  修改index.html

  把Dashboard test改为Dashboard,保存退出

  再次访问网站,发现Dashboard test改为Dashboardtest已经消失了

View缓存演示

  同样配置好缓存后端,然后才可以通过cache_page缓存

  进入settings,同样用redis作为缓存后端

输入代码,进入项目

  这里将index1做了一个缓存,缓存方式比较简单。将装饰器放在view函数的前面

通过另一种方式对view做缓存

访问站点之前检查是否有缓存,如果有就清空

访问浏览器 Dashboard v1 index1缓存

访问Dashboard v2  index2缓存

 


原文链接:http://www.maiziedu.com/wiki/django/view/

猜你喜欢

转载自blog.csdn.net/lidiya007/article/details/77059411
今日推荐