2017-06-30 14 views
2

Jinjaテンプレートの各フィールドの幅を指定する方法はありますか?例えばJinjaテンプレートのフィールドの幅を指定する

私は私の出力は次のように表示させたい:

Name   Roll Address      Subject1  Subject2 

が、私は、各フィールドは、それに関連付けられた幅を持っていると思います。私はフィールドのトンを持っているので、各フィールドには、異なる幅Iは

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

をフォーマットはPythonの助けを借りてこれを行う方法を発見した

を持っているしかし、私はJinja2の中でこれを行う方法を必要とし、条件付き書式設定が必要なものもあります。その間にスペースをハードコードすることなくこれを行う方法はありますか?

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

答えて

3

%-フォーマット用のフィルタがあります、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{:<num>}ようright-padding format specifierです。

関連する問題