考虑以下 Jinja2 模板片段:
<a href="{{ url_for('/magic/{{ filename }}') }}">Click to see magic happen</a>
这段代码尝试生成已定义路由的 URL as:
@app.route('/magic/<filename>') def moremagic(filename): pass
但是,模板片段生成的 URL 不正确,因为在 url_for() 函数中未正确引用 {{ filename }} 变量。
要解决此问题,必须删除 url_for() 函数中额外的一组花括号。这是因为 Jinja2 中的 {{ ... }} 中的所有内容都是类似 Python 的表达式,因此没有必要使用另一个 {{ ... }} 来引用变量。
更正后的代码如下:
<a href="{{ url_for('moremagic', filename=name) }}">Click to see magic happen</a>
这里,name 变量作为参数传递给 url_for() 函数,并使用端点名称 moremagic 而不是 URL路径。
以上是如何在 Jinja2 的 `url_for()` 函数中正确引用模板变量?的详细内容。更多信息请关注PHP中文网其他相关文章!