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

# 配置缓存为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的源码 源码.png

CacheResponseMixin继承自RetrieveCacheResponseMixin和ListCacheResponseMixin,当action是list和retrieve时,才会有缓存行为.

本文为个人学习记录,勿当教程

上一篇下一篇

猜你喜欢

热点阅读