gpt4 book ai didi

python - Flask - Jinja2 如何输出不同的

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

所以我将数据输出到我的模板,如下所示(该函数将检查每个数据(一个 int)是否是我的计算结果并产生 True/False,然后产生正在计算的项目。

@app.route('/', methods=['POST'])
# doing something here
def get_data():
for item in generate_list():
if isResult(item):
yield True
else:
yield False
yield item
return Response(stream_template('result.html', data=get_data()))

在我的 HTML 文件中:

<div id="resultfield">
{% for state, id in data: %}
{% if state == True %}
<div class='passed'>{{ id }}:{{ state }}</div>
{% else %}
<div class='failed'>{{ id }}:{{ state }}</div>
{% endfor %}
</div>

我的目的是,如果状态为 True,则结果(如 CSS 中所述)将为绿色,否则为灰色。

由于某种原因,代码无法正常工作,因为它说“TypeError:‘bool’对象不可迭代”。

我是 flask 和 jinja2 的新手,如何解决这个问题?

非常感谢

最佳答案

您需要生成元组,而不是生成 bool 值,然后分别生成项目:

def get_data():
for item in generate_list():
yield isResult(item), item

因为 isResult() 已经返回一个 bool 值,所以这里不需要 if/else 测试。

您可以将模板简化为:

<div id="resultfield">
{% for state, id in data %}
<div class="{% if state %}passed{% else %}failed{% endif %}">{{ id }}:{{ state }}</div>
{% endfor %}
</div>

关于python - Flask - Jinja2 如何输出不同的 <div id/class>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21917787/

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