我很难解决这个问题 - 所以Stackoverflow可能已经有了答案 - 但我正在使用一个API,它提供外部URL的图像链接以及JSON文件中的其他数据。不幸的是,一些链接不再有效。
我的目标是在if语句中确定这一点,如果图像没有加载,也不要加载任何其他数据。
这是我尝试过的代码,但不幸的是,有些项目仍在通过:
{% for i in range(cards[setName]|length) %}
{% if cards[setName][i]['img'] %}
<p>{{ cards[setName][i]['name'] }}</p>
<a href="{{ cards[setName][i]['img'] }}">
<img src="{{ cards[setName][i]['img'] }}">
</a>
{% endif %}
{% endfor %}
答案 0 :(得分:1)
Jinja不知道链接是否有效。它只是一个字符串。因此,要么在api中发送JSON之前进行此检查,要么使用注释中建议的javascript解决方案来隐藏失败的图像。
进行检查&#39;只是&#39;在发送json之前,这是一个坏主意,因为你会打开许多检查每个网址的请求。最好使用异步作业来检查数据库中的图像。
另外,为什么在范围内使用i?这样做也会增加可读性。
{% for card in cards[setName] %}
{% if card['img'] %}
<p>{{ card['name'] }}</p>
<a href="{{ card['img'] }}">
<img src="{{ card['img'] }}">
</a>
{% endif %}
{% endfor %}
答案 1 :(得分:1)
这是一个最小的例子。根据您的需要进行修改。它所做的就是如果图像没有加载,它会隐藏img的父div。
l1 = df[(df['Grade'] == 'A') & (df['Label'] == 'M')]
如果div是img的祖父,而不是父,要访问它,请使用:
<div> <!-- this div contains the image and other data -->
<img src="path/to/image.jpg" onError="this.onerror = '';this.parentElement.style.display='none';">
<!-- ... other data ... -->
</div>