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):

...

如下特点

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缓存后端

Django学习之 view 缓存详解

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

Django学习之 view 缓存详解

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

Django学习之 view 缓存详解

启动站点

Django学习之 view 缓存详解

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

Django学习之 view 缓存详解

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

Django学习之 view 缓存详解

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

Django学习之 view 缓存详解

  把Dashboard test改为Dashboard,保存退出

Django学习之 view 缓存详解

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

Django学习之 view 缓存详解

View缓存演示

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

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

Django学习之 view 缓存详解

输入代码,进入项目

Django学习之 view 缓存详解

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

Django学习之 view 缓存详解

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

Django学习之 view 缓存详解

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

Django学习之 view 缓存详解

访问浏览器 Dashboard v1 index1缓存

Django学习之 view 缓存详解

访问Dashboard v2  index2缓存

Django学习之 view 缓存详解

 


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