一、使用装饰器

 在文件开头导入下面代码,然后在函数上方添加缓存的装饰器

from django.views.decorators.cache import cache_page

一:在视图View中使用 cache_page 【整个视图缓存】

@cache_page(30)

def my_view(request) 

二:在路由URLConf中使用 cache_page 

urlpatterns = [path('/path, cache_page(60)(my_view)')]
# 方式一:使用caches['CACHES配置key'] 导入具体对象
from django.core.cache import caches
cache1 = caches['user']
cache2 = caches['pwd'] # 方式二:相当于直接引入CACHES配置项中的'default'项
from django.core.cache import cache
cache.set(key,value,timeout) 存储缓存
key:缓存的key
value:Python对象
timeout:缓存存储的时间(s),默认为CACHES中的TIMEOUT值 cache.get(key) 取缓存,没有数据返回None
key:缓存的key cache.add(key,value) 存储缓存,只要可以不在时生效返回值是Bool cache.get_or_set(key,value,timeout) 如果未获取到数据,则执行set操作 cache.set_many(dict,timout) 批量存储数据
dict:key和value的字典
timout:存储时间
返回值:插入不成功的key的数组 cache.delete(key) 删除key的缓存数据,返回值None cache.delete_many(key_list) 批量删除,返回值None

  

二、原生缓存

redis缓存

首先要安装django-redis

pip install django-redis
配置 settings.py django项目的缓存配置 CACHES = {
"default": {
"BACKEND": "django_redis.cache.RedisCache", # 引擎
# redis服务器的ip地址及端口号,及数据库序号,redis一共有15个数据库 0~15
"LOCATION": "redis://127.0.0.1:6379/1",
# "LOCATION": "redis://:passwordpassword@47.193.146.xxx:6379/0", # 如果redis设置密码的话,需要以这种格式进行设置,host前面是密码
"OPTIONS": {
"CLIENT_CLASS": "django_redis.client.DefaultClient"
}
}
}

  

数据库缓存

CACHES = {
'default': {
'BACKEND': 'django.core.cache.backends.db.DatabaseCache', # 引擎
'LOCATION': 'my_cache_table', # 数据库表名(名字是自己取的)
'TIMEOUT': 300, # 缓存超时时间(默认300,None表示永不过期,0表示立即过期)
'OPTIONS':{
'MAX_ENTRIES': 300, # 最大缓存个数(默认300)
'CULL_FREQUENCY': 3, # 缓存条数到达最大值时,删除1/X的缓存数据
},
}
}

  

本地内存缓存
CACHES = {
'default': {
'BACKEND': 'django.core.cache.backends.locmem.LocMemCache',
'LOCATION': 'unique-snowflake', #这个参数指定变量名必须唯一
}
}

  

文件缓存
CACHES = {
'default': {
'BACKEND': 'django.core.cache.backends.filebased.FileBasedCache',
'LOCATION': r'c/xxx', #缓存内容存放的文件夹路径
}
}

  

开发调试缓存
CACHES = {
'default': {
'BACKEND': 'django.core.cache.backends.dummy.DummyCache', # 引擎
#注: 下面这些参数时公用的,五种缓存都可以使用
'TIMEOUT': 300, # 缓存超时时间(默认300,None表示永不过期,0表示立即过期)
'OPTIONS':{
'MAX_ENTRIES': 300, # 最大缓存个数(默认300)
'CULL_FREQUENCY': 3, # 缓存到达最大个数之后,剔除缓存个数的比例(3就是1/3)
},
}
}

  

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

  6. django中的缓存

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

  7. django中的setting最佳配置小结

    Django settings详解 1.基础 DJANGO_SETTING_MODULE环境变量:让settings模块被包含到python可以找到的目录下,开发情况下不需要,我们通常会在当前文件夹运 ...

  8. Django中使用缓存

    settings中的配置 CACHES = { 'default': { 'BACKEND': 'django.core.cache.backends.filebased.FileBasedCache ...

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

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

  10. 测试开发之Django——No4.Django中前端框架的配置与添加

    我们在开发一个web项目的时候,虽然我们不是专业开发,但是我们也想要做出来一个美美的前端页面. 这种时候,百度上铺天盖地的前端框架就是我们的最好选择了. 当然,在网上直接下载的框架,我们是不能直接用的 ...

随机推荐

  1. 使用Libusb测试USB device

    一. 先准备好测试工具 -- Libusb: 在Linux中使用的话: 首先从 http://www.libusb.org/官网中下载libusb 然后解压之后./configure --> m ...

  2. clear

    BFC虽然可以达到外部背景由内部内容撑开的效果,但是存在副作用 所以由clear将affter受浮动效果解除,来解决以上问题

  3. Hive基本概念

    Hive Hive的相关概念 Hive的架构图 用户接口:包括 CLI.JDBC/ODBC.WebGUI.其中,CLI(command line interface)为shell命令行:Hive中的T ...

  4. maven :Cannot start maven service

    问题报错信息:maven启动失败 java.lang.RuntimeException: Cannot start maven service at org.jetbrains.idea.maven. ...

  5. @Async 注解的使用

    1.@Async介绍 在Spring中,基于@Async标注的方法,称之为异步方法:这些方法将在执行的时候,将会在独立的线程中被执行,调用者无需等待它的完成,即可继续其他的操作 例如, 在某个调用中, ...

  6. ASP.NET Core实现自定义中间件的三种方式

    一.什么是中间件 请求处理管道由一系列中间件组件组成.每个组件在 HttpContext 上执行操作,调用管道中的下一个中间件或终止请求. 详情请看另外一篇文章:白话管道中间件 下图是中间件的管道模型 ...

  7. app打包尺寸

    APP上架图标要求 a.  app图标: ios: 1024x1024 png   尺寸要小  png 安卓:72x72 96x96 144x144 192x192 b.  app启动图: iOS 启 ...

  8. (四)用go实现红黑树

    本篇文章我们用go来实现红黑树,部分参考资料如下: https://www.cnblogs.com/skywang12345/p/3245399.html#!comments https://blog ...

  9. 整合Junit5

    1.引入依赖 <dependency> <groupId>org.junit.jupiter</groupId> <artifactId>junit-j ...

  10. Hadoop 设置静态IP、关闭防火墙

    设置静态IP [root@localhost ~]# cd /etc[root@localhost etc]# cd sysconfig[root@localhost sysconfig]# cd n ...