gpt4 book ai didi

python - 如何为特定的 @cache_page 指定 KEY_FUNCTION

转载 作者:太空宇宙 更新时间:2023-11-03 18:41:59 24 4
gpt4 key购买 nike

我需要根据时间来更新特定 View 的缓存。不仅仅是缓存页面的 60 分钟生命周期,而且它应该在具体时间(新的一小时开始时)变成新的。

最佳答案

我想出了这样的东西:

import datetime
from django.views.decorators.cache import cache_page


def my_cache(time_func, *args, **kwargs):
def decorator(func):
def wraps(*args, **kwargs):
@cache_page(time_func())
def inner_func(*args, **kwargs):
return func(*args, **kwargs)
return inner_func(*args, **kwargs)
return wraps
return decorator


def till_hour():
now = datetime.datetime.now()
return (60 - now.minute) * 60 + (60 - now.second)


@my_cache(time_func=till_hour)
def my_view(request):
... # view code_here

因此,我们创建一个带有参数的装饰器(time_func 作为第一个参数)并将我们的 View 包装在一系列包装器中,以便每次调用包装函数时都会调用 cache_page 装饰器。因此每次我们的 View 被调用时都会得到与 time_func 不同的结果。

这看起来并不是一个完美的方法,因为 cache_page 实际上被调用了很多次,所以最好多研究一下 cache_page 后面的代码。

关于python - 如何为特定的 @cache_page 指定 KEY_FUNCTION,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20329201/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com