Django-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):
        ...

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扩展对于缓存提供了三个扩展类:
ListCacheResponseMixin

用于缓存返回列表数据的视图,与ListModelMixin扩展类配合使用,实际是为list方法添加了cache_response装饰器
RetrieveCacheResponseMixin
用于缓存返回单一数据的视图,与RetrieveModelMixin扩展类配合使用,实际是为retrieve方法添加了cache_response装饰器
CacheResponseMixin
为视图集同时补充List和Retrieve两种缓存,与ListModelMixinRetrieveModelMixin一起配合使用。

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

猜你喜欢

转载自blog.csdn.net/wu0che28/article/details/81414505