gpt4 book ai didi

flask - Jinja2:本地/全局变量

转载 作者:行者123 更新时间:2023-12-03 15:32:15 25 4
gpt4 key购买 nike

{% set disabled = '' %}
{% for voter in record.voters %}
{% if user == voter %}
{% set disabled = 'disabled' %}
{% endif %}
{{ disabled }} # outputs: 'disabled'
{% endfor %}
{{ disabled }} # outputs: ''

我在 Jinja2 中有那个模板。
我需要的是“禁用”变量在“for”循环之外可见。
那可能吗?

最佳答案

处理此问题的最简单方法是移动设置 disabled 的逻辑。变量到您的 View 函数并将其发送到准备使用的模板。将应用程序逻辑与表示混合并不是一个好主意,模板应该接收尽可能消化的数据。

也就是说,有一个丑陋的黑客可以让你想要的成为可能,如 this question 的接受答案所示。 .

解决方案包括启用 do Jinja2 的扩展并使用它来修改全局数组。要启用扩展使用:

app.jinja_env.add_extension('jinja2.ext.do')

这是适用于您的示例的解决方案:
{% set disabled = [] %}
{% for voter in record.voters %}
{% if user == voter %}
{% do disabled.append(1) %}
{% endif %}
{% endfor %}
{% if disabled %}
disabled
{% endif %}

关于flask - Jinja2:本地/全局变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17925674/

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