有没有办法在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}}
答案 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>s
是right-padding format specifier,如{:<num>}
。