详解Django框架中的视图级缓存


Posted in Python onJuly 23, 2015

更加颗粒级的缓存框架使用方法是对单个视图的输出进行缓存。 django.views.decorators.cache定义了一个自动缓存视图响应的cache_page装饰器。 他是很容易使用的:

from django.views.decorators.cache import cache_page

def my_view(request):
  # ...

my_view = cache_page(my_view, 60 * 15)

也可以使用Python2.4的装饰器语法:

@cache_page(60 * 15)
def my_view(request):
  # ...

cache_page 只接受一个参数: 以秒计的缓存超时时间。 在前例中, “my_view()” 视图的结果将被缓存 15 分钟。 (注意: 为了提高可读性,该参数被书写为 60 * 15 。 60 * 15 将被计算为 900 ,也就是说15 分钟乘以每分钟 60 秒。)

和站点缓存一样,视图缓存与 URL 无关。 如果多个 URL 指向同一视图,每个视图将会分别缓存。 继续 my_view 范例,如果 URLconf 如下所示:

urlpatterns = ('',
  (r'^foo/(\d{1,2})/$', my_view),
)

那么正如你所期待的那样,发送到 /foo/1/ 和 /foo/23/ 的请求将会分别缓存。 但一旦发出了特定的请求(如: /foo/23/ ),之后再度发出的指向该 URL 的请求将使用缓存。

Python 相关文章推荐
对Python新手编程过程中如何规避一些常见问题的建议
Apr 01 Python
Tensorflow环境搭建的方法步骤
Feb 07 Python
pycharm 将django中多个app放到同个文件夹apps的处理方法
May 30 Python
python反编译学习之字节码详解
May 19 Python
Django Admin中增加导出CSV功能过程解析
Sep 04 Python
Python+OpenCV实现实时眼动追踪的示例代码
Nov 11 Python
使用Jupyter notebooks上传文件夹或大量数据到服务器
Apr 14 Python
Django日志及中间件模块应用案例
Sep 10 Python
Python加载数据的5种不同方式(收藏)
Nov 13 Python
selenium判断元素是否存在的两种方法小结
Dec 07 Python
用Python实现定时备份Mongodb数据并上传到FTP服务器
Jan 27 Python
Python入门学习之类的相关知识总结
May 25 Python
Django中的CACHE_BACKEND参数和站点级Cache设置
Jul 23 #Python
简介Django框架中可使用的各类缓存
Jul 23 #Python
浅析Python的Django框架中的Memcached
Jul 23 #Python
详解Django中的权限和组以及消息
Jul 23 #Python
在Django的模板中使用认证数据的方法
Jul 23 #Python
在Django中管理Users和Permissions以及Groups的方法
Jul 23 #Python
Django中对通过测试的用户进行限制访问的方法
Jul 23 #Python
You might like
PHP自动生成月历代码
2006/10/09 PHP
ThinkPHP模板替换与系统常量及应用实例教程
2014/08/22 PHP
php分割合并两个字符串的函数实例
2015/06/19 PHP
百万级别知乎用户数据抓取与分析之PHP开发
2015/09/28 PHP
PHP中empty和isset对于参数结构的判断及empty()和isset()的区别
2015/11/15 PHP
基于PHP的加载类操作以及其他两种魔术方法的应用实例
2017/08/28 PHP
php解决约瑟夫环算法实例分析
2019/09/30 PHP
setInterval 和 setTimeout会产生内存溢出
2008/02/15 Javascript
JavaScript 新手24条实用建议[TUTS+]
2009/06/21 Javascript
JS 文件传参及处理技巧分析
2010/05/13 Javascript
flash+jQuery实现可关闭及重复播放的压顶广告
2015/04/15 Javascript
理解JavaScript中worker事件api
2015/12/25 Javascript
浅析JavaScript函数的调用模式
2016/08/10 Javascript
深入理解Puppeteer的入门教程和实践
2019/03/05 Javascript
微信小程序利用Canvas绘制图片和竖排文字详解
2019/06/25 Javascript
在Layui中实现开关按钮的效果实例
2019/09/29 Javascript
VUE.CLI4.0配置多页面入口的实现
2019/11/25 Javascript
基于Element封装一个表格组件tableList的使用方法
2020/06/29 Javascript
python单线程实现多个定时器示例
2014/03/30 Python
利用Python绘制数据的瀑布图的教程
2015/04/07 Python
Python使用tkinter模块实现推箱子游戏
2019/10/08 Python
Ubuntu16.04安装python3.6.5步骤详解
2020/01/10 Python
详解用Python爬虫获取百度企业信用中企业基本信息
2020/07/02 Python
anaconda3安装及jupyter环境配置全教程
2020/08/24 Python
python 使用tkinter+you-get实现视频下载器
2020/11/17 Python
python实现发送QQ邮件(可加附件)
2020/12/23 Python
HTML5的结构和语义(2):结构
2008/10/17 HTML / CSS
利用canvas实现图片压缩的示例代码
2018/07/17 HTML / CSS
Dr. Martens马汀博士法国官网:马丁靴鼻祖
2020/01/15 全球购物
联欢晚会主持词
2014/03/25 职场文书
迎国庆演讲稿
2014/09/05 职场文书
学校清洁工岗位职责
2015/04/15 职场文书
Java方法重载和方法重写的区别到底在哪?
2021/06/11 Java/Android
MySQL 1130异常,无法远程登录解决方案详解
2021/08/23 MySQL
Win11无法访问设备和打印机 如何解决页面空白
2022/04/09 数码科技
MySQL池化框架学习接池自定义
2022/07/23 MySQL