首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Django回忆录

Django回忆录
EN

Stack Overflow用户
提问于 2018-09-13 11:29:14
回答 1查看 1.5K关注 0票数 3

我有一个django rest应用程序,其中有一个函数,它使用一些外部数据(来自另一个服务)来计算一些东西,如果不需要的话,我希望避免加载。此数据定期更改,但对于一个请求来说是相同的。因此,我想缓存这个函数的结果(因为它在一个请求期间被多次调用)。我遇到了缓存函数结果的https://github.com/tvavrys/django-memoize/库,但是我只能指定一个时间,而不能指定一个上下文,在此之后缓存将失效。

我认为合理的一种可能性是以某种方式注册一个钩子,它在每次请求后清除缓存(使用delete_memoized),但我还没有找到注册这样一个钩子的方法。

因此,我的问题是:

  • 在呈现响应后执行一些代码(→清除缓存),或
  • 告诉django为一个请求缓存一个函数结果(使用其他库吗?)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-09-13 11:44:33

也许你应该试试属性

@cached_property装饰器将带有单个自参数的方法的结果缓存为属性。只要实例执行,缓存的结果就会持续存在,因此如果传递实例并随后调用函数,则缓存的结果将被返回。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52312788

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档