当前位置: 首页 > 面试题库 >

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

纪佐
2023-03-14
问题内容

我有一条这样定义的路线:

@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在你的示例中,该名称默认为该函数的名称)。



 类似资料:
  • 问题内容: 我有一条这样定义的路线: 现在,在模板中,我想使用以下方式调用该路由: 我试过了: 谁能建议如何将出现在模板中的转换为,以便在单击时调用正确的名称? 问题答案: 里面的所有内容都是类似Python的表达式。你无需在其中使用另一个引用变量。 放下多余的括号: (请注意,该函数使用终结点名称,而不是URL路径;在你的示例中,该名称默认为该函数的名称)。

  • 问题内容: 我试图将数据作为JSON从Flask路由传递到呈现JavaScript的Jinja模板。我想使用JavaScript遍历数据。浏览器显示何时对渲染的数据进行调用。如何在JavaScript中使用呈现的JSON数据? 如果我只放入HTML部分,那么我所看到的看起来是正确的。 问题答案: Flask的Jinja环境会自动转义HTML模板中呈现的数据。如果开发人员尝试呈现不受信任的用户输入,

  • 英文原文:http://emberjs.com/guides/templates/conditionals/ 有些时候,或许我们只希望在一个属性存在的时候显示一部分模板。 这时,我们就可以使用{{#if}}助手按条件渲染一个代码块,如下所示: 1 2 3 {{#if person}} Welcome back, <b>{{person.firstName}} {{person.lastNam

  • 问题内容: 我试过了: 在模板中: 上面的代码将每个元素分成多个字符: 我在一个简单的Python脚本中测试了上述嵌套循环,但效果很好,但在Jinja模板中却无法正常工作。 问题答案: 数据: 在Jinja2迭代中: 注意: 确保你有字典项列表。如果得到的可能是字典中的值包含格式。 如果你的字典是对象,则可以解决该问题,你必须将其编码为

  • 问题内容: 我想做类似的事情: 变量p来自test.py,它是一个列表[‘a’,’b’,’c’,’d’] 结果输出是: 1 2 3 4 问题答案: 您可以使用: 检查模板设计器文档。 在最近的版本中,由于作用域规则,下面的 不 工作:

  • 问题内容: 我想将Follium Map插入到Jinja模板中。 运行 template / index.html -Flask的Jinja模板 我的网站显示当前行: 但是我需要在此div块中生成方法follium_map.save(’map.html’)的地图。 我怎样才能做到这一点? 问题答案: 你可以使用来保存生成的。然后,你可以使用jinja2来。如所示将生成的html包裹在div标签中时