Jinja 表达式中的引用模板变量
Reference template variable within Jinja expression
我有这样定义的路线:
@app.route('/magic/<filename>')
def moremagic(filename):
pass
现在在模板中,我想使用 url_for()
调用该路由,如下所示:
<h1>you uploaded {{ name }}<h1>
<a href="{{ url_for('/magic/<filename>') }}">Click to see magic happen</a>
我试过:
<a href="{{ url_for('/magic', filename={{ name }}) }}">Click to see magic happen</a>
这会引发 jinja2.TemplateSyntaxError: expected token ':' got }
谁能建议如何将模板中出现的 {{ name }}
放入 url_for()
中,以便在我单击时调用正确的 app.route
?
{{ ... }}
中的所有内容都是类似 Python 的表达式。您不需要在其中使用另一个 {{ ... }}
来引用变量。
删除多余的括号:
<h1>you uploaded {{ name }}<h1>
<a href="{{ url_for('moremagic', filename=name) }}">Click to see magic happen</a>
(请注意,url_for()
函数采用端点 name,而不是 URL 路径;名称默认为函数名称,moremagic
在你的例子中)。
我有这样定义的路线:
@app.route('/magic/<filename>')
def moremagic(filename):
pass
现在在模板中,我想使用 url_for()
调用该路由,如下所示:
<h1>you uploaded {{ name }}<h1>
<a href="{{ url_for('/magic/<filename>') }}">Click to see magic happen</a>
我试过:
<a href="{{ url_for('/magic', filename={{ name }}) }}">Click to see magic happen</a>
这会引发 jinja2.TemplateSyntaxError: expected token ':' got }
谁能建议如何将模板中出现的 {{ name }}
放入 url_for()
中,以便在我单击时调用正确的 app.route
?
{{ ... }}
中的所有内容都是类似 Python 的表达式。您不需要在其中使用另一个 {{ ... }}
来引用变量。
删除多余的括号:
<h1>you uploaded {{ name }}<h1>
<a href="{{ url_for('moremagic', filename=name) }}">Click to see magic happen</a>
(请注意,url_for()
函数采用端点 name,而不是 URL 路径;名称默认为函数名称,moremagic
在你的例子中)。