Django REST Framework extensions
2018-07-09 本文已影响0人
入间
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_testSerializer
filter_backends = (DjangoFilterBackend,)
pagination_class = AvSearchPagination
到这里,简单的配置就已经完成了.
我们可以来简单看下CacheResponseMixin的源码 源码.pngCacheResponseMixin继承自RetrieveCacheResponseMixin和ListCacheResponseMixin,当action是list和retrieve时,才会有缓存行为.
本文为个人学习记录,勿当教程