drf-extensions是django中的一个拓展插件,里面的功能繁多,这里我只介绍利用它进行简单快速的缓存.
附上drf-extensions的官方文档地址 http://chibisov.github.io/drf-extensions/docs/#cacheresponsemixin
- 配置环境
pip install drf-extensions
pip install django-redis
pip install django-redis-cache
- settings中的相关配置
# 配置缓存为redis
CACHES = {'default': {'BACKEND': 'redis_cache.cache.RedisCache','LOCATION': 'redis://127.0.0.1:6379',"OPTIONS": {"CLIENT_CLASS": "redis_cache.client.DefaultClient",},},
}
# drf-extensions的设置
REST_FRAMEWORK_EXTENSIONS = {# 过期时间 单位是秒'DEFAULT_CACHE_RESPONSE_TIMEOUT':60*60
}
- 简单使用方法
# views.py
from rest_framework_extensions.cache.mixins import CacheResponseMixin#在视图类中继承CacheResponseMixin 即可
class BtsearchViewset(CacheResponseMixin,mixins.ListModelMixin,mixins.RetrieveModelMixin,viewsets.GenericViewSet):queryset = Bt_test.objects.all()serializer_class = Bt_testSerializerfilter_backends = (DjangoFilterBackend,)pagination_class = AvSearchPagination
到这里,简单的配置就已经完成了.
我们可以来简单看下CacheResponseMixin的源码
CacheResponseMixin继承自RetrieveCacheResponseMixin和ListCacheResponseMixin,当action是list和retrieve时,才会有缓存行为.
本文为个人学习记录,勿当教程