Jinja表达式中的引用模板变量

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?


隔江千里
浏览 719回答 1
1回答

陪伴而非守候

里面的一切{{ ... }}是类似Python的表达式。你不需要用另一个{{ ... }}在里面引用变量。去掉额外的括号:<h1>you&nbsp;uploaded&nbsp;{{&nbsp;name&nbsp;}}<h1><a&nbsp;href="{{&nbsp;url_for('moremagic',&nbsp;filename=name)&nbsp;}}">Click&nbsp;to&nbsp;see&nbsp;magic&nbsp;happen</a>(请注意,url_for()函数接受端点。名字,姓名,而不是URL路径;名称默认为函数的名称,moremagic在你的例子中)。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python