Django REST Framework extensionsはredisと協力してキャッシュする

2891 ワード

drf-extensionsはdjangoの中の1つの拡張プラグインで、中の機能はとても多くて、ここで私はただそれを利用して簡単で速いキャッシュを行うことを紹介します.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のソースコードDjango REST Framework extensions 配合redis进行缓存_第1张图片 CacheResponseMixinはRetrieveCacheResponseMixinとListCacheResponseMixinから継承され、actionがlistとretrieveである場合にキャッシュ動作がある.
    この文書は個人学習記録であり,教程にはならない