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における相関構成 簡単な使い方
ここまで、簡単な構成が完了する.
CacheResponseMixinのソースコード CacheResponseMixinはRetrieveCacheResponseMixinとListCacheResponseMixinから継承され、actionがlistとretrieveである場合にキャッシュ動作がある.
この文書は個人学習記録であり,教程にはならない
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のソースコード CacheResponseMixinはRetrieveCacheResponseMixinとListCacheResponseMixinから継承され、actionがlistとretrieveである場合にキャッシュ動作がある.
この文書は個人学習記録であり,教程にはならない