Django按要求记忆

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Django按要求记忆相关的知识,希望对你有一定的参考价值。

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

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

因此,我的问题是:是否有可能

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

也许你应该试试cached_property

@cached_property装饰器使用单个self参数作为属性来缓存方法的结果。只要实例执行,缓存的结果将保持不变,因此如果传递实例并随后调用该函数,则将返回缓存的结果。

以上是关于Django按要求记忆的主要内容,如果未能解决你的问题,请参考以下文章

11.按要求编写Java应用程序。 创建一个叫做机动车的类: 属性:车牌号(String),车速(int),载重量(double) 功能:加速(车速自增)减速(车速自减)修改车牌号,查询车的(代码片段

按要求编写Java应用程序。 创建一个叫做机动车的类: 属性:车牌号(String),车速(int),载重量(double) 功能:加速(车速自增)减速(车速自减)修改车牌号,查询车的载重量(代码片段

如何在 Django Summernote 中显示编程片段的代码块?

django.core.exceptions.ImproperlyConfigured: Requested setting DEFAULT_INDEX_TABLESPACE的解决办法(转)(代码片段

django.core.exceptions.ImproperlyConfigured: Requested setting DEFAULT_INDEX_TABLESPACE的解决办法(转)(代码片段

scrapy按顺序启动多个爬虫代码片段(python3)