python - 我可以使用复杂的键而不是字符串来访问 Django/Python 缓存解决方案

标签 python django

据我了解,Django/Python 的所有缓存解决方案本质上都是基于键/值字典。

cache.store(“key”, “value”)

cache.get(“key”) # <- “value”

我知道有一些装饰器和其他抽象允许您基于 View 函数存储在缓存中,但它们对该函数的输入(例如 POST/GET 参数)是不可知的。

这是我的问题:我需要缓存复杂输入集的计算结果,包括(但不限于)执行请求的用户、字典、 bool 值、ecc...

理论上,我可以将这些输入序列化为字符串,并使用该字符串作为缓存的 key ,但我想知道是否有一些预制的解决方案可以解决这个问题。

类似这样的事情:

def my_view(request):

    output = cache.get(request, None)
    if output is None:
        output = complex_stuff(request) # <- can be serialized as string
        cache.store(request, output)

或者,更好的是,我可以使用任意字典作为键,而不是字符串。

这不仅仅是针对每个用户的缓存 ( Django per user view caching )。每个用户的缓存是不够的,因为我需要每个用户每个用户输入。

最佳答案

我想你可以试试这个包,django-cache-memoize ,它自动内存参数和关键字参数。或者如果你使用redis,并且需要更多的控制,你也可以尝试我的包Django-Cacheme

关于python - 我可以使用复杂的键而不是字符串来访问 Django/Python 缓存解决方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57386348/

相关文章:

python - 如何根据 ROC 结果设置 sklearn 分类器的阈值?

python使用正则表达式根据前一行读取接下来的n行

python - 在 Django 中发送群发邮件——太多的值无法解压

python - JSON 字符串索引必须是整数

python - 如何在 python matplotlib 中手动设置字符串颜色?

python - 当我尝试使用 tkinter 将图像加载到 Canvas 上时,是什么导致错误 'unknown option "pyimage 1"'?

django - 有哪些用于自定义 Django Admin 的应用程序或附加组件

python - 使用 select_lated 和 extra 子句

python - 我可以使用 python os.nice 来降低 celery 任务的友好度吗?

Django 1.7 中的 Django-migrations 检测模型更改,但不会将其应用于迁移