【问题标题】:Format table cells according to datatype using Jinja2/Bootstrap使用 Jinja2/Bootstrap 根据数据类型格式化表格单元格
【发布时间】:2015-09-30 23:06:31
【问题描述】:

我正在尝试自动化一项手动任务,每天,一位同事登录到各种系统,将数据块剪切/粘贴到电子邮件中,然后将其发送给一群人。我使用 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 模板做什么才能正确格式化列?

【问题讨论】:

    标签: twitter-bootstrap jinja2


    【解决方案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

    【讨论】:

    • 简单又漂亮。非常感谢,@RobertMoskal。
    猜你喜欢
    • 1970-01-01
    • 2021-12-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多