如何在Jinja中创建一个包含模板后面的值的标记?

2024-09-24 22:24:23 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用的是Jinja2,我正在尝试创建一对可以协同工作的标记,这样如果我有一个类似于以下内容的模板:

{{ my_summary() }}
... arbitrary HTML ...
{{ my_values('Tom', 'Dick', 'Harry') }}
... arbitrary HTML ...
{{ my_values('Fred', 'Barney') }}

最后我会说:

^{pr2}$

换句话说,页面开头的my_summary()包含稍后在页面中提供的信息。它应该足够聪明来考虑出现在includeimport语句中的表达式。在

最好的办法是什么?在


Tags: 标记模板jinja2myhtml页面summaryfred
1条回答
网友
1楼 · 发布于 2024-09-24 22:24:23

免责声明:我不认识金贾。在

我猜你不可能(轻易)完成这件事。在

我建议以下替代方案:

  • 将Tom、Dick等值作为变量从外部传递给模板。在
  • 让您的自定义标记将值作为参数。在
  • 我不知道在你的情况下“外部”是什么。如果模板在web应用框架中使用,“外部”可能是一个控制器方法。在
  • 例如:

模板:

{{ my_summary(list1 + list2) }}
... arbitrary HTML ...
{{ my_values(list1) }}
... arbitrary HTML ...
{{ my_values(list2) }}

控制器:

^{pr2}$
  • 如果从外部传递值不可行,我建议您在模板顶部定义它们,如下所示:
{% set list1 = ['Dick', ...] %}
{% set list2 = ['Fred', ...] %}
{{ my_summary(list1 + list2) }}
... arbitrary HTML ...
{{ my_values(list1) }}
... arbitrary HTML ...
{{ my_values(list2) }}

相关问题 更多 >