curl
を使用して、Webアプリの出力を監視しています。 FlaskおよびJinjaレンダリングテンプレートの場合、出力に多くの不要な空白があります。Flask-WTFおよびFlask-Bootstrapのさまざまなコンポーネントをレンダリングすることにより追加されるようです。 sed
ですが、これをJinjaから制御する方法はありますか?
Jinjaには、複数の方法で 空白を制御 があります。それはない出力をきれいにする方法があります、あなたはすべてが「素敵」に見えることを手動で確認する必要があります。
最も広い解決策は、trim_blocks
およびlstrip_blocks
envで。
app.jinja_env.trim_blocks = True
app.jinja_env.lstrip_blocks = True
ファイルの最後に改行を入れたい場合は、strip_trailing_newlines = False
。
制御文字を使用して、タグの周りの空白がどのように機能するかを変更できます。 -
は常に空白を削除します、+
は常にそれを保持し、そのタグのenv設定を上書きします。 -
文字は、タグの先頭または末尾(または両方)に移動して、その方向の空白を制御できます。+
文字は、タグの先頭でのみ意味を持ちます。
{%- if ... %}
前のストリップ{%- if ... -%}
前後のストリップ{%+ if ... %}
前に保存する{%+ if ... -%}
は前を保持し、後に除去します{% endif %}
は個別に扱われます制御文字はテンプレートyouにのみ適用されます。ただし、テンプレートを含めるか、サードパーティのマクロを使用する場合、彼らが書いたテンプレートはその部分に適用されます。
ブロックの前後の空白を折りたたむには:
{%- if form.message -%} //trims before
{{ form.message }}
{%- endif -%} // trims after