gpt4 book ai didi

python - 如何确保 Jinja 自定义标签只输出一次?

转载 作者:太空宇宙 更新时间:2023-11-04 07:04:11 25 4
gpt4 key购买 nike

我在 Jinja2 中有一个自定义标签,我只想在第一次调用它时输出一些内容。所以说我有以下模板:

1. {% only_once %}
2. {% only_once %}
3. {% only_once %}

我希望输出为:

1. "I only get printed once!"
2.
3.

我猜最好的方法是在模板的上下文中设置一个标志来跟踪我是否已经打印了一些东西。这是一个代码示例,但这是正确的吗?

class OnlyOnceExtension(Extension):
tags = set(['only_once'])

@contextfunction
def parse(self, context, parser):
if hasattr(context, 'my_flag') and context.my_flag:
return Output("")
else:
return Output("I only get printed once!")

这样对吗?我读了一些关于上下文是不可变的东西,所以这行不通吗? (参见 http://jinja.pocoo.org/2/documentation/api 并搜索不可变)

最佳答案

如果你想纯粹用 Jinja 来做,你可以用那种方式检查 loop.index 变量,

{% for bar in bars %}
{% if loop.index == 1 %}
Print me once
{% endif %}
Print me every time
{% endfor %}

关于python - 如何确保 Jinja 自定义标签只输出一次?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3159156/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com