如何在Flask中设置Jinja的默认浮点格式?

时间:2013-01-09 13:46:43

标签: python format flask jinja2

我在Flask中使用Jinja,我希望在我的所有html页面中默认使所有浮动看起来像123.45,而不是在小数点后保留太多数字。我不想在模板文件中逐个格式化每个浮点数。我该怎么办?

2 个答案:

答案 0 :(得分:1)

您可以使用 context processor 为此创建自定义过滤器。

我有解决这个问题的flask官方文档的副本。

return Array.isArray(input) ? input.flat().sort((a, b) => a.length - b.length) : input;

您可以使用此过滤器传递所有值

@app.context_processor
def utility_processor():
    def format_price(amount):
        return u'{0:.2f}{1}'.format(amount)
    return dict(format_price=format_price)

希望回答。

答案 1 :(得分:0)

你也可以考虑使用十进制模块:

http://docs.python.org/2/library/decimal.html

这是一个从上述文档中摘录的快速示例:

>>> from decimal import *
>>> getcontext().prec = 2
>>> rounded_num = Decimal(1) / Decimal(7)
>>> rounded_num
Decimal('0.14')

通过使用此模块,应用程序中的所有浮点数将很好地转换为小数点后的两位数。