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

yipeiwu_com6年前Python基础

更加颗粒级的缓存框架使用方法是对单个视图的输出进行缓存。 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 pip用国内镜像下载的方法

异常信息: Retrying (Retry(total=2, connect=None, read=None, redirect=None)) after connection br...

对Python 两大环境管理神器 pyenv 和 virtualenv详解

简介 pyenv 是一个开源的 Python 版本管理工具,可以轻松地给系统安装任意 Python 版本,想玩哪个版本,瞬间就可以切换。有了 pyenv,我们不需要再为系统多版本 Pyt...

python获得图片base64编码示例

  复制代码 代码如下: #!/usr/bin/env python # -*- coding: utf-8 -*- import os, base64 icon = open...

python 将日期戳(五位数时间)转换为标准时间

python 将日期戳(五位数时间)转换为标准时间

5位数日期戳 读取 .mat 文件处理里面数据时,发现里面的日期数据全部都是 “5位数” 数字,很不解; 后来查到可以在excel中通过设置单元格调回标准日期格式,如下: 选中日期戳,...

python pandas 如何替换某列的一个值

python pandas 如何替换某列的一个值

摘要:本文主要是讲解怎么样替换某一列的一个值。 应用场景: 假如我们有以下的数据集: 我们想把里面不是pre的字符串全部换成Nonpre,我们要怎么做呢? 做法很简单。 df['c...