2019独角兽企业重金招聘Python工程师标准>>>

缓存

1.缓存
    ①对于中等流量的网站来说,尽可能地减少开销是必要的。缓存数据就是为了保存那些需要很多计算资源的结果,这样的话就不必在下次重复消耗计算资源 
    ②Django自带了一个健壮的缓存系统来保存动态页面,避免对于每次请求都重新计算
    ③Django提供了不同级别的缓存粒度:可以缓存特定视图的输出、可以仅仅缓存那些很难生产出来的部分、或者可以缓存整个网站

2.设置缓存
    ①通过设置决定把数据缓存在哪里,是数据库中、文件系统还是在内存中
    ②通过setting文件的CACHES配置来实现
    ③参数TIMEOUT:缓存的默认过期时间,以秒为单位,这个参数默认是300秒,即5分钟;设置TIMEOUT为None表示永远不会过期,值设置成0造成缓存立即失效

CACHES={'default': {'BACKEND': 'django.core.cache.backends.locmem.LocMemCache','TIMEOUT': 60,}
}

可以将cache存到redis中,默认采用1数据库,需要安装包并配置如下:  
        安装包:

pip install django-redis-cache
CACHES = {"default": {"BACKEND": "redis_cache.cache.RedisCache","LOCATION": "localhost:6379",'TIMEOUT': 60,},
}

可以连接redis查看存的数据
        连接:redis-cli
        切换数据库:select 1
        查看键:keys *
        查看值:get 键

3.单个view缓存
    django.views.decorators.cache定义了cache_page装饰器,用于对视图的输出进行缓存 
    示例代码如下:

from django.views.decorators.cache import cache_page@cache_page(60 * 15)
def index(request):return HttpResponse('hello1')#return HttpResponse('hello2')

cache_page接受一个参数:timeout,秒为单位,上例中缓存了15分钟
    视图缓存与URL无关,如果多个URL指向同一视图,每个URL将会分别缓存

4.模板片断缓存
    ①使用cache模板标签来缓存模板的一个片段
    ②需要两个参数:
        缓存时间,以秒为单位 
        给缓存片段起的名称 
    示例代码如下:

{% load cache %}
{% cache 500 hello %}
hello1
<!--hello2-->
{% endcache %}

5.底层的缓存API

from django.core.cache import cache
设置:cache.set(键,值,有效时间)
获取:cache.get(键)
删除:cache.delete(键)
清空:cache.clear()

转载于:https://my.oschina.net/zhenfei/blog/1929909

Django 框架14: 缓存相关推荐

  1. Django框架(14.Django中模型类的关系,以及模型类关联查询)

    Django中模型类的关系,以及模型类关联查询 1.模型类关系 1.1 一对多关系 1.2多对多关系 1.3 一对一关系 1.4 一对多举例: 1.5 多对多举例: 1.6 一对一举例: 2.关联查询 ...

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

    二.跨域: 回到顶部 跨域知识介绍: 点我以前博客 跨域解决方法:CORS:跨域资源共享 CORS请求分类(简单请求和非简单请求) 简单请求(simple request):只需要在头信息之中增加一个 ...

  3. 自学Python第二十二天- Django框架(三) AJAX、文件上传、POST 请求类型之间的转换、多APP开发、iframe、验证码、分页器、类视图、中间件、信号、日志、缓存、celery异步

    Django官方文档 django 使用 AJAX django 项目中也可以使用 ajax 技术 前端 前端和其他 web 框架一样,需要注意的是,django 接收 POST 请求时,需要 csr ...

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

    阅读目录 一.Django中的缓存: 前戏: Django中的几种缓存方式: Django中的缓存应用: 二.跨域: 跨域知识介绍: CORS请求分类(简单请求和非简单请求) 示例: 三.自动生成接口 ...

  5. Django框架基础知识点

    Django框架 1.Django创建项目的命令 django-admin startproject 项目名称 python manage.py startapp 应用app名 2.Django创建项 ...

  6. django框架预备知识

    内容: 1.web预备知识 2.django介绍 3.web框架的本质及分类 4.django安装与基本设置 1.web预备知识 HTTP协议:https://www.cnblogs.com/wyb6 ...

  7. Python 之 Django框架( Cookie和Session、Django中间件、AJAX、Django序列化)

    12.4 Cookie和Session 12.41 cookie Cookie具体指的是一段小信息,它是服务器发送出来存储在浏览器上的一组组键值对,下次访问服务器时浏览器会自动携带这些键值对,以便服务 ...

  8. django框架全解

    目录 简介 MVC与MTV模型 MVC MTV 创建项目 目录 生命周期 静态文件配置(无用) 启动django 路由 分组 无名分组 有名分组 路由分发 反向解析 反向解析结合分组 名称空间 re_ ...

  9. Django框架学习

    Django是现在世界上python语言应用最广泛.发展最成熟的web框架.它足够完整 ,不需要依赖其他就可以开发出 非常完整的web应用.Django的主要内容如下: Django综述:了解Djan ...

最新文章

  1. spyder jupyter集成
  2. 30、【华为HCIE-Storage】--Hyper Metro(双活【块业务】)
  3. 乐视云监控数据存放到influxdb中
  4. vue3.0中使用计算属性时报错
  5. 在线教育平台 PK 与 SAP 小众化的思考
  6. @staticmethod用法
  7. 1分钟了解相似性推荐
  8. jakarta ee_在等待Jakarta EE时
  9. python3模块: requests
  10. js实现冒泡排序,快速排序,选择排序
  11. Python学习笔记(尚硅谷)——变量
  12. 使用zlib库实现gzip格式压缩
  13. Aspectj切入点语法定义
  14. Apache配置支持目录浏览
  15. HashSet中add的执行过程
  16. 【汉字识别】基于matlab SVM汉字识别【含Matlab源码 830期】
  17. 计算机组成原理(白中英) 第一章课后题部分答案(知识点汇总及扩展)
  18. 我的世界高分辨率/512x/1024x/2048x材质包制作教程:Substance 3D Designer
  19. 微信小程序系列4——传值详解
  20. Qt 开发ARM64程序

热门文章

  1. System.LazyT 延迟加载
  2. Django之session
  3. 锋利的JQuery —— DOM操作
  4. 获取远程文章内容时,显示图片的两种方式
  5. python空行拼接字符串_python基础---文本和字符串操作
  6. 微课竞赛系统的设计与实现所需工作条件_工作室文化建设展示(3)
  7. Windows核心编程 第二十章 DLL的高级操作技术
  8. Windowsw核心编程 第13章 Windows内存结构
  9. 汇编环境搭建(vs2010(2012)+masm32)
  10. hdu4940 有上下界的无源可行流判断