概述  
    对于中等流量网站来说,尽可能的减少开销是必要的。缓存数据就是为了保存那些需要很多计算资源大的结果,这样的的话就不必在下次重复消耗计算资源。
    Django自带了一个健壮的缓存系统来保存动态页面,避免每次请求都重新计算。
    Django提供了不同级别的缓存策略,可以缓存特定的视图输出、可以仅仅缓存那些很难计算出来的部分、或者缓存整个网站。
 
    将缓存存储到redis中,默认使用redis中的数据库,首先需要安装扩展库,pip install django-redis-cache。
    然后在setting.py里配置,
         CACHES={
'default':{
'BACKEND':'redis_cache.cache.RedisCache',
'LOCATION':'localhost:6379',#redis数据库,
'TIMEOUT':60 #过期时间
}
}

然后再,单个view缓存

第一种方法在视图views里面设置,

 django.views.decorators.cache.cache_page装饰器用于对视图的输出进行缓存
from django.views.decorators.cache import cache_page @cache_page(60 * 2)
def index(request):
# return HttpResponse("sunck is a good man")
return HttpResponse("sunck is a nice man")
 
cache_page(timeout, [cache=cache name], [key_prefix=key prefix])

cache_page只接受一个参数和两个关键字参数,

  • timeout是缓存时间,以秒为单位
  • cache:指定使用你的CACHES设置中的哪一个缓存后端
  • key_prefix:指定缓存前缀,可以覆盖在配置文件中CACHE_MIDDLEWARE_KEY_PREFIX的值

第二种,在路由URL里面设置;

 from django.views.decorators.cache import cache_page
urlpatterns = ('',
(r'^foo/(\d{1,2})/$', cache_page(60 * 15)(my_view)),

模板片段的缓存设置

 {% load static %}
{% load cache %}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>主页</title> {# <link rel="stylesheet" type="text/css" href="/static/css/index.css">#}
<link rel="stylesheet" type="text/css" href="{% static 'css/index.css' %}">
</head>
<body>
<h1>sunck is a nice man</h1>
{% cache 120 sunck %}#参数,120是缓存时间,以秒为单位,sunk是缓存片段的名字。
<h1>nice man</h1>
<!--<h1>good man</h1>-->
{% endcache %}
</body>
</html>

Django中的缓存机制的更多相关文章

  1. Django中的缓存(内存,文件,redis)

    一.Django中的缓存的几种方法 1)单个视图缓存.时间测试 import time from django.views.decorators.cache import cache_page @ca ...

  2. Django 中的缓存问题

    Django 中的缓存问题 简单介绍 ​ 在动态网站中,用户所有的请求,服务器都会去数据库中进行相应的增,删,查,改,渲染模板,执行业务逻辑,最后生成用户看到的页面. ​ 当一个网站的用户访问量很大的 ...

  3. Django框架深入了解_05 (Django中的缓存、Django解决跨域流程(非简单请求,简单请求)、自动生成接口文档)

    一.Django中的缓存: 前戏: 在动态网站中,用户所有的请求,服务器都会去数据库中进行相应的增,删,查,改,渲染模板,执行业务逻辑,最后生成用户看到的页面. 当一个网站的用户访问量很大的时候,每一 ...

  4. django中的缓存以及跨域

    django中的缓存 先来了解以下问题

  5. django中的缓存 跨域问题(同源策略)

    django缓存机制 在动态网站中,用户所有的请求,服务器都会去数据库中进行相应的增,删,查,改,渲染模板,执行业务逻辑,最后生成用户看到的页面. 当一个网站的用户访问量很大的时候,每一次的的后台操作 ...

  6. hibernate中的缓存机制

    一.为什么要用Hibernate缓存? Hibernate是一个持久层框架,经常访问物理数据库. 为了降低应用程序对物理数据源访问的频次,从而提高应用程序的运行性能. 缓存内的数据是对物理数据源中的数 ...

  7. Django中的缓存基础知识

    由于Django是动态网站,所有每次请求均会去数据进行相应的操作,当程序访问量大时,耗时必然会更加明显,最简单解决方式是使用:缓存,缓存将一个某个views的返回值保存至内存或者memcache中,5 ...

  8. java整形中的缓存机制

      英文原文:Java Integer Cache 翻译地址:Java中整型的缓存机制 原文作者:Java Papers 翻译作者:Hollis 转载请注明出处. 本文将介绍Java中Integer的 ...

  9. django中的缓存

    对于一个动态网站来说,用户的每次访问都意味着对服务器的一次开销,当该服务器的并发访问非常大时,对于一个动态网站来说,开销会非常的大.所以对于大中型web应用来说,减轻服务器的性能瓶颈就很有必要 对于d ...

随机推荐

  1. python学习第二天--字符串及格式化输出

    # 字符串# 字符串取值:字符串名[索引值] 只能取单个值# 正序访问,从0开始str1 = "hello world"print(str1[3]) # 输出"l&quo ...

  2. Python - zipfile 乱码问题解决

    最近使用zipfile进行解包过程中遇到了很不舒服的问题,解包之后文件名是乱码的.下面进行简单总结: 首先,乱码肯定是因为解码方式不一样了,zipfile使用的是utf-8和cp437这两种编码方式, ...

  3. HDU 3571 N-dimensional Sphere( 高斯消元+ 同余 )

    N-dimensional Sphere Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Oth ...

  4. [Git 系列] WIN7下Git的安装

    版权声明:本文为博主原创文章.未经博主同意不得转载. https://blog.csdn.net/monkey7777/article/details/32155833 1.下载git win7版本号 ...

  5. Oracle update 两表及以上关联更新,出现多值情况,不是一对一更新

    为了方便起见,建立了以下简单模型,和构造了部分测试数据:在某个业务受理子系统BSS中, SQL 代码--客户资料表 create table customers ( customer_id numbe ...

  6. 分支结构if 语句举例

  7. python基础--逻辑运算

    #and or not#and 且 :两边都为真才是真#or 或:一个真就是真(一真为真)#ont 非:相反#优先级:1.not>and>or#同一优先级由左向右以此计算!#列子:prin ...

  8. spring boot poi 导出Excel

    public class ExcelData implements Serializable { private static final long serialVersionUID = 444401 ...

  9. Django框架的学习

    目前 Django 1.6.x 以上版本已经完全兼容 Python 3.x. 1. 指定django版本的安装 pip install django =1.11

  10. java开源项目

    原文地址:http://blog.longjiazuo.com/archives/2625 1.整理出一些使用比较广或者个人觉得比较好的java开源项目和资料供参考.2.如果你觉得好但是我没有列出的开 ...