我在用Jinja2渲染字典数据时遇到麻烦。
我有两个不同的字典变量。 cinfo['cbs']
保留来自用户输入的数据。我能够渲染该数据。另一个位于pdata
内,尽管我无法呈现此数据。
文本将呈现在".leftcell"
td
下,但是".rightcell"
td
上的数据显示为空。如果两个字典变量都包含空白字符串,我希望小精灵完全跳过该块。
对于上下文,这是我的流命令:
template.stream(cinfo=cinfo, pdata = pdata)
以下是“ pdata”字典的数据结构:
pdata = {'Building Size': {'Data': '28,106 SF'}}
以下是我的jinja2代码:
<!DOCTYPE html>
<html lang="en">
<body lang="en-US">
<div id="propertyinfo">
<table id="pitable" cellspacing="0">
<tbody>
{% if cinfo['cbs'] != "" %}
<tr>
<td class="leftcell">
Building Size
</td>
<td class="rightcell">
{{cinfo['cbs']}}
</td>
</tr>
{% elif pdata["Building Size"]["Data"] != "" %}
<tr>
<td class="leftcell">
Building Size
</td>
<td class="rightcell">
{{pdata["Building Size"]["Data"]}}
</td>
</tr>
{% endif %}
</tbody>
</table>
</div>
</body>
</html>
感谢您的协助!
答案 0 :(得分:0)
尝试 pdata如下,只是为了避免空格
pdata = {'Building_Size': {'Data': '28,106 SF'}}
并使用“。”访问字典内容。
{% if cinfo.cbs != "" %}
<tr>
<td class="leftcell">
Building Size
</td>
<td class="rightcell">
{{cinfo.cbs}}
</td>
</tr>
{% elif pdata.Building_Size.Data != "" %}
<tr>
<td class="leftcell">
Building Size
</td>
<td class="rightcell">
{{pdata.Building_Size.Data}}
</td>
</tr>
{% endif %}