Jinja表达式中的引用模板变量
我有一条这样定义的路线:
@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()
函数使用终结点名称,而不是URL路径;moremagic
在你的示例中,该名称默认为该函数的名称)。
以上是 Jinja表达式中的引用模板变量 的全部内容, 来源链接: utcz.com/qa/423386.html