1

我正在尝试缓存视图,除非用户已登录。 current_user但只能在视图内工作,所以我无法将其传递给unless=. 我该如何正确地做到这一点?

@app.route("/")
@app.cache.cached(timeout=300, unless=current_user.is_authenticated())
def index():
    return 'stuff to return'
4

1 回答 1

1

将调用包装在lambda. Flask-Cache 将在视图执行时调用该函数,而不是在定义视图时调用一次。

@app.cache.cached(timeout=300, unless=lambda: current_user.is_authenticated)

文档特别说unless应该是每次都会执行的可调用对象。

于 2015-07-18T10:08:41.217 回答