使用Django REST框架制作的REST API的缓存

使用Django REST框架制作的REST API的缓存,django,nginx,caching,django-rest-framework,http-caching,Django,Nginx,Caching,Django Rest Framework,Http Caching,我正在用Django+Django REST框架构建一个REST API,现在我关心的是添加一些缓存以提高响应时间。我已经将Redis配置为缓存后端 我已经看到Django有多个缓存模式,比如每个站点或每个视图,您必须在其中配置缓存时间 我主要关心的是避免陈旧的反应。 假设我在列出一些资源时配置了5分钟缓存。用户导航到此列表,然后发布资源并返回列表。 如果第一次将列表缓存5分钟,如何避免他在第二次显示视图时在没有添加资源的情况下获得缓存结果 我期待着某种“自动智能缓存”,可以为GET请求启用,并

我正在用Django+Django REST框架构建一个REST API,现在我关心的是添加一些缓存以提高响应时间。我已经将Redis配置为缓存后端

我已经看到Django有多个缓存模式,比如每个站点或每个视图,您必须在其中配置缓存时间

我主要关心的是避免陈旧的反应。 假设我在列出一些资源时配置了5分钟缓存。用户导航到此列表,然后发布资源并返回列表。 如果第一次将列表缓存5分钟,如何避免他在第二次显示视图时在没有添加资源的情况下获得缓存结果

我期待着某种“自动智能缓存”,可以为GET请求启用,并在收到PUT或POST请求后清除。但是,我找不到像这样的东西

我已经看到,可以使用Django的低级API
缓存配置缓存。添加
缓存。删除
。但这似乎不是一个好的解决方案,因为它需要为每个视图编写大量自定义代码。我更愿意将缓存与代码逻辑分开

为使用Django构建的RESTAPI配置缓存的典型方法是什么?
我应该用Django还是nginx之类的工具来实现它?

我使用
rest\u framework\u extensions.cache.mixins导入CacheResponseMixin
。您可以扩展该基类,以便在写入时逐出正确的缓存项。