在Jinja模板中指定字段宽度

时间:2017-06-30 23:01:20

标签: python jinja2

有没有办法在Jinja模板中指定每个字段的宽度?

例如,我希望我的输出显示如下:

Name           Roll  Address                      Subject1        Subject2  

我希望每个字段都有一个与之关联的宽度。每个字段都有不同的宽度

我在Python格式化的帮助下找到了一种方法

template = "{:20} {:2} {:30} {:10} {:10}"
fields = template.format("Name", "Roll", "Address","Subject1", "Subject1")
print(fields)

但是,我需要一种方法在Jinja2中执行此操作,因为我有大量的字段,其中一些需要条件格式。有没有办法做到这一点,而不必硬编码中间的空格?

{{Name}}              {{Roll}}  {{Address}}             {{Subject1}}              {{Subject2}} 

1 个答案:

答案 0 :(得分:4)

有一个百分比格式的过滤器,format

{{'%-20s'|format(Name)}} {{'%-2s'|format(Roll)}} {{'%-30s'|format(Address)}} {{'%-10s'|format(Subject1)}} {{'%-10s'|format(Subject2)}}

{{'%-20s %-2s %-30s %-10s %-10s'|format(Name, Roll, Address, Sbject1, Subject2)}}

%-<num>sright-padding format specifier,如{:<num>}