python - 在 Jinja2 If/elif 语句中加入字典元素
问题描述
我无法使用 Jinja2 渲染字典数据。
我有两个不同的字典变量。cinfo['cbs']
保存来自用户输入的数据。我能够渲染该数据。另一个位于 内pdata
,但我无法呈现此数据。
文本将呈现在 下".leftcell"
td
,但上的数据".rightcell"
td
显示为空。如果两个字典变量都包含空白字符串,我希望 jinja 完全跳过该块。
对于上下文-这是我的流命令:
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>
感谢你的协助!
解决方案
尝试 pdata 如下,只是为了避免空格
pdata = {'Building_Size': {'Data': '28,106 SF'}}
并使用“。”访问 dict 内容。
{% 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 %}
推荐阅读
- javascript - Electron:如何安全地将全局变量注入 BrowserWindow / BrowserView?
- postgresql - Neo4j 关系属性索引的最佳实践?
- kubernetes - k8s 中的哪个 API 组
- linux - 如何更新 minikube 最新版本?
- javascript - 计算动态创建的 Div 元素和所有子元素的加载时间
- d3.js - d3.axis.ticks() 将被忽略
- apache-spark - 用户在使用 spark.sql 读取数据时没有 ALTERTABLE_ADDCOLS 的权限
- java - 即使应用程序处于后台,服务也会被终止
- angular6 - node_modules/raven-js/typescript/raven.d.ts(205,11) 中的错误:错误 TS2304:找不到名称“未知”
- python - 我正在尝试将列表输入数据框新列