Django 框架14: 缓存
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: 缓存相关推荐
- Django框架(14.Django中模型类的关系,以及模型类关联查询)
Django中模型类的关系,以及模型类关联查询 1.模型类关系 1.1 一对多关系 1.2多对多关系 1.3 一对一关系 1.4 一对多举例: 1.5 多对多举例: 1.6 一对一举例: 2.关联查询 ...
- Django框架深入了解_05 (Django中的缓存、Django解决跨域流程(非简单请求,简单请求)、自动生成接口文档)(二)
二.跨域: 回到顶部 跨域知识介绍: 点我以前博客 跨域解决方法:CORS:跨域资源共享 CORS请求分类(简单请求和非简单请求) 简单请求(simple request):只需要在头信息之中增加一个 ...
- 自学Python第二十二天- Django框架(三) AJAX、文件上传、POST 请求类型之间的转换、多APP开发、iframe、验证码、分页器、类视图、中间件、信号、日志、缓存、celery异步
Django官方文档 django 使用 AJAX django 项目中也可以使用 ajax 技术 前端 前端和其他 web 框架一样,需要注意的是,django 接收 POST 请求时,需要 csr ...
- Django框架深入了解_05 (Django中的缓存、Django解决跨域流程(非简单请求,简单请求)、自动生成接口文档)(一)
阅读目录 一.Django中的缓存: 前戏: Django中的几种缓存方式: Django中的缓存应用: 二.跨域: 跨域知识介绍: CORS请求分类(简单请求和非简单请求) 示例: 三.自动生成接口 ...
- Django框架基础知识点
Django框架 1.Django创建项目的命令 django-admin startproject 项目名称 python manage.py startapp 应用app名 2.Django创建项 ...
- django框架预备知识
内容: 1.web预备知识 2.django介绍 3.web框架的本质及分类 4.django安装与基本设置 1.web预备知识 HTTP协议:https://www.cnblogs.com/wyb6 ...
- Python 之 Django框架( Cookie和Session、Django中间件、AJAX、Django序列化)
12.4 Cookie和Session 12.41 cookie Cookie具体指的是一段小信息,它是服务器发送出来存储在浏览器上的一组组键值对,下次访问服务器时浏览器会自动携带这些键值对,以便服务 ...
- django框架全解
目录 简介 MVC与MTV模型 MVC MTV 创建项目 目录 生命周期 静态文件配置(无用) 启动django 路由 分组 无名分组 有名分组 路由分发 反向解析 反向解析结合分组 名称空间 re_ ...
- Django框架学习
Django是现在世界上python语言应用最广泛.发展最成熟的web框架.它足够完整 ,不需要依赖其他就可以开发出 非常完整的web应用.Django的主要内容如下: Django综述:了解Djan ...
最新文章
- spyder jupyter集成
- 30、【华为HCIE-Storage】--Hyper Metro(双活【块业务】)
- 乐视云监控数据存放到influxdb中
- vue3.0中使用计算属性时报错
- 在线教育平台 PK 与 SAP 小众化的思考
- @staticmethod用法
- 1分钟了解相似性推荐
- jakarta ee_在等待Jakarta EE时
- python3模块: requests
- js实现冒泡排序,快速排序,选择排序
- Python学习笔记(尚硅谷)——变量
- 使用zlib库实现gzip格式压缩
- Aspectj切入点语法定义
- Apache配置支持目录浏览
- HashSet中add的执行过程
- 【汉字识别】基于matlab SVM汉字识别【含Matlab源码 830期】
- 计算机组成原理(白中英) 第一章课后题部分答案(知识点汇总及扩展)
- 我的世界高分辨率/512x/1024x/2048x材质包制作教程:Substance 3D Designer
- 微信小程序系列4——传值详解
- Qt 开发ARM64程序