## 一、使用装饰器
在文件开头导入下面代码,然后在函数上方添加缓存的装饰器
~~~
from django.views.decorators.cache import cache_page
@cache_page(30)
~~~
## 二、原生缓存
Django中提供了6种缓存方式:
* 开发调试
* 内存
* 文件
* 数据库
* Memcache缓存(python-memcached模块)
* Memcache缓存(pylibmc模块)
常用的缓存配置
Memcache缓存
首先要创建缓存表
~~~
python manage.py createcachetable [table_name]
~~~
```
CACHES = {
'default': {
'BACKEND': 'django.core.cache.backends.db.DatabaseCache',
'LOCATION': 'cache_table',
'TIMEOUT': '60',
'OPTIONS': {
'MAX_ENTRIES': '300',
},
'KEY_PREFIX': 'rock',
'VERSION': '1',
}
}
```
redis缓存
首先要安装django-redis
~~~
pip install django-redis
~~~
```
CACHES = {
"default": {
"BACKEND": "django_redis.cache.RedisCache",
"LOCATION": "redis://127.0.0.1:6379/1",
"OPTIONS": {
"CLIENT_CLASS": "django_redis.client.DefaultClient",
}
}
}
```
代码实现示例:
~~~
from django.forms import model_to_dict
from django.http import JsonResponse
from django.core.cache import cache
from app.models import Engineer
def my_cache_test(req):
# 看缓存有没有数据
res = cache.get('data')
if res:return JsonResponse(res)
else:
# 查数据
data = Engineer.objects.all()
# 把对象转成字典
# model_to_dict()
c_data = []
for i in data:
c_data.append(model_to_dict(i))
result = {'my_data':c_data}
# 设置缓存
cache.set('data',result,30)
# 返回数据给前端
return JsonResponse(result)
~~~
- Python学习
- Python基础
- Python初识
- 列表生成式,生成器,可迭代对象,迭代器详解
- Python面向对象
- Python中的单例模式
- Python变量作用域、LEGB、闭包
- Python异常处理
- Python操作正则
- Python中的赋值与深浅拷贝
- Python自定义CLI三方库
- Python并发编程
- Python之进程
- Python之线程
- Python之协程
- Python并发编程与IO模型
- Python网络编程
- Python之socket网络编程
- Django学习
- 反向解析
- Cookie和Session操作
- 文件上传
- 缓存的配置和使用
- 信号
- FBV&&CBV&&中间件
- Django补充
- 用户认证
- 分页
- 自定义搜索组件
- Celery
- 搭建sentry平台监控
- DRF学习
- drf概述
- Flask学习
- 项目拆分
- 三方模块使用
- 爬虫学习
- Http和Https区别
- 请求相关库
- 解析相关库
- 常见面试题
- 面试题
- 面试题解析
- 网络原理
- 计算机网络知识简单介绍
- 详解TCP三次握手、四次挥手及11种状态
- 消息队列和数据库
- 消息队列之RabbitMQ
- 数据库之Redis
- 数据库之初识MySQL
- 数据库之MySQL进阶
- 数据库之MySQL补充
- 数据库之Python操作MySQL
- Kafka常用命令
- Linux学习
- Linux基础命令
- Git
- Git介绍
- Git基本配置及理论
- Git常用命令
- Docker
- Docker基本使用
- Docker常用命令
- Docker容器数据卷
- Dockerfile
- Docker网络原理
- docker-compose
- Docker Swarm
- HTML
- CSS
- JS
- VUE