【问题标题】:Run jinja2 template_filter on every request using Flask使用 Flask 对每个请求运行 jinja2 template_filter
【发布时间】:2014-11-26 14:30:18
【问题描述】:

我使用Flask 生成带有jinja2 template_filter 的URL:

@app.template_filter()
def generate_stuff(url):
    return do_stuff(url)

这个 template_filter 每个 URL 只执行一次。如果用户重新加载我希望Flask 再次运行此功能的页面。我该怎么做?

PS:我是Flask 的新手。如果有更好的方法来实现同样的效果,我当然也很感兴趣:)

【问题讨论】:

  • 如果用户重新加载页面,模板过滤器将重新运行,因为render_template 调用将再次运行。你能告诉我们更多关于你想要做什么的细节吗?

标签: python django flask jinja2


【解决方案1】:

Template filters 在这里使用是错误的,它们用于添加额外的函数,您可以对模板中的变量使用。您可能正在寻找context processors。您可以使用request.url 来获取 url,或者如果这不是您想要的,也可以根据要求提供其他路径属性。

@app.context_processor
def inject_user():
    return {
        'my_stuff': do_stuff(request.url)
    }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-08
    • 2023-02-01
    • 2020-12-12
    • 2017-12-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多