我正在做一个小工作板,每份工作都有小卡片。这些卡片是使用 flask/jinja 从我的 python 脚本发送到 html 的列表动态创建的
jobs = [{'title':'fix car', 'description':'my car broke down', 'price':100}]
HTML 示例
{% for item in jobs %}
<p> {{ item['title'] }} {{ item['description'] }} {{ item['price'] }} </p>
{% endfor %}
我想要的是能够使选定的卡片脱颖而出或成为特色。因此,在我的工作来自的 Python 脚本中,我添加了一个二进制选项。 1 = 特色,0 = 正常
所以在我的 html 中它看起来像这样:
{% for item in jobs %}
<p class='featured if item['featured']'> {{ item['title'] }} {{ item['description'] }} {{ item['price'] }}
{% endfor %}
因此,如果将其特色键设置为 1,它将获得一个新的 CSS 类。
CSS 示例
.featured {
background-color: blue;
}
最佳答案
您可以使用内联条件来获得更短的结果:
<p class='{{"featured" if item["featured"] else "normal"}}'> {{ item['title'] }} {{ item['description'] }} {{ item['price'] }}</p>
但是,如果您不想包含非特色卡片的类,可以使用通用的 if
-else
语句:
{%if item["featured"]%}
<p class='featured'> {{ item['title'] }} {{ item['description'] }} {{ item['price'] }}</p>
{%else%}
<p> {{ item['title'] }} {{ item['description'] }} {{ item['price'] }}</p>
{%endif%}
关于python - 带有 jinja 的条件元素类,如果列表项包含某个项目,我希望 div 获得一个类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55545481/