美文网首页
Django REST Framework extensions

Django REST Framework extensions

作者: 入间 | 来源:发表于2018-07-09 23:25 被阅读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的源码 源码.png

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

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

    相关文章

      网友评论

          本文标题:Django REST Framework extensions

          本文链接:https://www.haomeiwen.com/subject/mzjxpftx.html