博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
django Rest Framework---缓存通过drf-extensions扩展来实现
阅读量:4983 次
发布时间:2019-06-12

本文共 1229 字,大约阅读时间需要 4 分钟。

 什么情况下使用缓存

1.不经常更新的数据

2.用户经常访问的一些页面,比如商品列表页、商品详情页等

3.用户经常修改的一些操作:购物车、订单中心等

关于DRF缓存扩展可以参考文档:

安装

pip install drf-extensions

 

使用方法

1) 直接添加装饰器

可以在使用rest_framework_extensions.cache.decorators中的cache_response装饰器来装饰返回数据的类视图的对象方法,如:

class CityView(views.APIView):  @cache_response()  def get(self, request, *args, **kwargs):    ...    1    2    3    4

cache_response装饰器可以接收两个参数

@cache_response(timeout=60*60, cache='default')

timeout 缓存时间;

cache   缓存使用的Django缓存后端(即CACHES配置中的键名称;

 

如果在使用cache_response装饰器时未指明timeout或者cache参数,则会使用配置文件中的默认配置,可以通过如下方法指明:

# DRF扩展REST_FRAMEWORK_EXTENSIONS = {  # 缓存时间  'DEFAULT_CACHE_RESPONSE_TIMEOUT': 60 * 60,  # 缓存存储  'DEFAULT_USE_CACHE': 'default',}

# DEFAULT_CACHE_RESPONSE_TIMEOUT 缓存有效期,单位秒

# DEFAULT_USE_CACHE 缓存的存储方式,与配置文件中的CACHES的键对应。

 

2)使用drf-extensions提供的扩展类

drf-extensions扩展对于缓存提供了三个扩展类: 

1) ListCacheResponseMixin

  用于缓存返回列表数据的视图,与ListModelMixin扩展类配合使用,实际是为list方法添加了cache_response装饰器

2) RetrieveCacheResponseMixin

  用于缓存返回单一数据的视图,与RetrieveModelMixin扩展类配合使用,实际是为retrieve方法添加了cache_response装饰器

3) CacheResponseMixin 

  为视图集同时补充List和Retrieve两种缓存,与ListModelMixin和RetrieveModelMixin一起配合使用,也可以与ModelViewSet使用。

 

三个扩展类都是在rest_framework_extensions.cache.mixins中。

转载于:https://www.cnblogs.com/lvye001/p/10028922.html

你可能感兴趣的文章
octave操作
查看>>
【Python】安装Python的mysql模块
查看>>
【Python】在控制台输出不同颜色的文字
查看>>
js 获取gridview 点击行每个单元格的值
查看>>
Floyd算法解说
查看>>
浅谈C++非多态单继承数据布局
查看>>
cogs 1396. wwww
查看>>
MYSQL数据库优化
查看>>
Linux 新手学习任务
查看>>
内部类对象的获取!《Thinking in Java》随笔018
查看>>
[MongoDB]Python 操作 MongoDB
查看>>
antd 表格隔行变色
查看>>
springboot-helloworld实现
查看>>
关于CocoaSocket
查看>>
面试准备专题——SOA架构
查看>>
前端 CSS padding 目录
查看>>
SQL 03
查看>>
IE6和IE7中border渲染断线现象
查看>>
Python源码分析
查看>>
Git超简洁教程
查看>>