美文网首页django-rest-framework
django-restful:缓存机制 drf-extensi

django-restful:缓存机制 drf-extensi

作者: 你常不走的路 | 来源:发表于2018-01-17 15:28 被阅读13次

配置第三方包 的缓存功能 github地址:https://github.com/chibisov/drf-extensions

文档:http://chibisov.github.io/drf-extensions/docs/#cacheresponsemixin

安装
pip install drf-extensions

1.内存缓存

配置 非常简单

settings 可不用写 默认有

REST_FRAMEWORK_EXTENSIONS = {
    'DEFAULT_OBJECT_CACHE_KEY_FUNC':
      'rest_framework_extensions.utils.default_object_cache_key_func',
    'DEFAULT_LIST_CACHE_KEY_FUNC':
      'rest_framework_extensions.utils.default_list_cache_key_func',
}
然后 只需要 在你需要进行缓存的地方进行 配置
例子 CacheResponseMixin 配置上这个 就行了 注意一定要在最先配置这个 顺序很重要
from myapps.serializers import UserSerializer
from rest_framework_extensions.cache.mixins import CacheResponseMixin

class UserViewSet(CacheResponseMixin, viewsets.ModelViewSet):
    serializer_class = UserSerializer
然后 就是配置过期时间 毕竟 数据也会有更新的 所以加上一个 过期时间

settings

REST_FRAMEWORK_EXTENSIONS = {
    'DEFAULT_CACHE_RESPONSE_TIMEOUT': 60 * 15   #秒为单位  自己 随意更改
}

2.redis 缓存

这个可以更直观的看着 dir-extensions做了什么
django 连接redis 需要一些 第三方插件 github地址:https://github.com/niwinz/django-redis

安装
pip install django-redis
配置

settings

CACHES = {
    "default": {
        "BACKEND": "django_redis.cache.RedisCache",
        "LOCATION": "redis://127.0.0.1:6379/1",
        "OPTIONS": {
            "CLIENT_CLASS": "django_redis.client.DefaultClient",
        }
    }
}

就这样 就可以了 至于 redis 的安装 我这里就不写了
需要启动了 redis 在启动项目 才能连接上
通过命令 keys * 可以查看 缓存 一些规则

相关文章

网友评论

    本文标题:django-restful:缓存机制 drf-extensi

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