使用 Jinja2/Bootstrap 根据数据类型格式化 table 单元格
Format table cells according to datatype using Jinja2/Bootstrap
我正在尝试自动化一项手动任务,其中一位同事每天登录各种系统,cuts/pastes 将数据块发送到电子邮件中,然后将其发送给一群人。我使用 Jinja2 作为模板引擎,Bootstrap 让它看起来更漂亮。这是到目前为止所做的事情:https://gist.github.com/alexwoolford/ac342289bb90c5dda524
有些列是百分比,有些是计数,有些是美元。对于百分比,我想将该值乘以 100,四舍五入到小数点后两位,并添加百分号(例如 0.34567 将显示为 34.57%)。对于计数,我想用逗号分隔千位(例如 1234567 将显示为 1,234,567)。对于美元,我想添加一个美元符号,舍入到最接近的整数,并用逗号分隔千位(例如 2345.67 将显示为 $2,346)。
理想情况下,我想简单地将 class 添加到模板中的 table 单元格,如下所示:
<td class='percent'>{{ row.some_percent_val }}</td>
<td class='count'>{{ row.some_count }}</td>
<td class='dollar'>{{ row.some_dollar_value }}</td>
我需要对 Jinja2 模板做些什么才能正确设置列的格式?
css 不会给你想要的。您需要使用神社过滤器系统。一些内置的过滤器(如格式)可能可以帮助您完成大部分工作。但是您可能需要创建一些自定义的。例如,您可以这样做以获得漂亮的美元显示:
<td class='dollar'>{{ "${:,.2f}" | format (row.some_dollar_value)}}</td>
如果您愿意,可以对字符串变量使用所有内置的 python 方法:
{{ "${:,.2f}".format (row.some_dollar_value)}}
可在此处找到用于创建您自己的自定义过滤器的文档:
我正在尝试自动化一项手动任务,其中一位同事每天登录各种系统,cuts/pastes 将数据块发送到电子邮件中,然后将其发送给一群人。我使用 Jinja2 作为模板引擎,Bootstrap 让它看起来更漂亮。这是到目前为止所做的事情:https://gist.github.com/alexwoolford/ac342289bb90c5dda524
有些列是百分比,有些是计数,有些是美元。对于百分比,我想将该值乘以 100,四舍五入到小数点后两位,并添加百分号(例如 0.34567 将显示为 34.57%)。对于计数,我想用逗号分隔千位(例如 1234567 将显示为 1,234,567)。对于美元,我想添加一个美元符号,舍入到最接近的整数,并用逗号分隔千位(例如 2345.67 将显示为 $2,346)。
理想情况下,我想简单地将 class 添加到模板中的 table 单元格,如下所示:
<td class='percent'>{{ row.some_percent_val }}</td>
<td class='count'>{{ row.some_count }}</td>
<td class='dollar'>{{ row.some_dollar_value }}</td>
我需要对 Jinja2 模板做些什么才能正确设置列的格式?
css 不会给你想要的。您需要使用神社过滤器系统。一些内置的过滤器(如格式)可能可以帮助您完成大部分工作。但是您可能需要创建一些自定义的。例如,您可以这样做以获得漂亮的美元显示:
<td class='dollar'>{{ "${:,.2f}" | format (row.some_dollar_value)}}</td>
如果您愿意,可以对字符串变量使用所有内置的 python 方法:
{{ "${:,.2f}".format (row.some_dollar_value)}}
可在此处找到用于创建您自己的自定义过滤器的文档: