🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
## 一、使用装饰器   在文件开头导入下面代码,然后在函数上方添加缓存的装饰器 ~~~ 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) ~~~