使用Jinja2 / Bootstrap根据数据类型格式化表格单元格

时间:2015-07-12 17:30:23

标签: twitter-bootstrap jinja2

我试图自动执行手动任务,每天,同事登录各种系统,将数据块剪切/粘贴到电子邮件中,然后将其发送给一组人。我使用Jinja2作为模板引擎,使用Bootstrap使其看起来很漂亮。到目前为止,我们做了什么:https://gist.github.com/alexwoolford/ac342289bb90c5dda524

有些列是百分比,有些是计数,有些是美元。对于百分比,我想将该值乘以100,舍入到两位小数,并添加百分号(例如,0.34567将显示为34.57%)。对于计数,我想用逗号分隔数千(例如1234567将显示为1,234,567)。对于美元,我想添加一个美元符号,舍入到最接近的整数,并用逗号分隔数千(例如2345.67将显示为$ 2,346)。

理想情况下,我只想在模板中的表格单元格中添加一个类,如下所示:

<td class='percent'>{{ row.some_percent_val }}</td>
<td class='count'>{{ row.some_count }}</td>
<td class='dollar'>{{ row.some_dollar_value }}</td>

我需要对Jinja2模板做什么才能正确格式化列?

1 个答案:

答案 0 :(得分:1)

css不会给你你想要的东西。你需要使用jinja过滤系统。一些像格式这样构建的过滤器可能会让你大部分都在那里。但您可能需要创建一些自定义的。例如,您可以这样做以获得一个漂亮的美元显示:

<td class='dollar'>{{ "${:,.2f}" | format (row.some_dollar_value)}}</td>

如果您愿意,可以在字符串变量上使用所有内置的python方法:

{{ "${:,.2f}".format (row.some_dollar_value)}}

有关创建自定义过滤器的文档,请访问:

http://jinja.pocoo.org/docs/dev/api/#custom-filters