检查 Flask-Cache `unless` 参数的用户是否匿名

Check if user is anonymous for Flask-Cache `unless` argument

我正在尝试缓存一个视图,除非用户已登录。current_user 只能在视图内工作,所以我无法将它传递给 unless=。我该如何正确执行此操作?

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

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

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

docs具体说unless应该是每次都会执行的可调用对象。