J'utilise curl
pour regarder la sortie de mon application Web. Lorsque Flask et les modèles de rendu Jinja, il y a beaucoup d'espace blanc inutile dans la sortie. Il semble être ajouté en rendant divers composants de Flask-WTF et Flask-Bootstrap. Je pourrais supprimer cela en utilisant sed
, mais existe-t-il un moyen de contrôler cela depuis Jinja?
Jinja a plusieurs façons de contrôler les espaces blancs . Il n'a pas un moyen de sublimer la sortie, vous devez vous assurer manuellement que tout a l'air "Nice".
La solution la plus large consiste à définir trim_blocks
et lstrip_blocks
sur l'env.
app.jinja_env.trim_blocks = True
app.jinja_env.lstrip_blocks = True
Si vous souhaitez conserver une nouvelle ligne à la fin du fichier, définissez strip_trailing_newlines = False
.
Vous pouvez utiliser des caractères de contrôle pour modifier le fonctionnement des espaces autour d'une balise. -
supprime toujours les espaces, +
la conserve toujours, remplaçant les paramètres env pour cette balise. Le -
le caractère peut aller au début ou à la fin (ou les deux) d'une balise pour contrôler les espaces dans cette direction, le +
le caractère n'a de sens qu'au début d'une balise.
{%- if ... %}
bandes avant{%- if ... -%}
bandes avant et après{%+ if ... %}
conserve avant{%+ if ... -%}
conserve avant et dépouille après{% endif %}
est traité séparémentLes caractères de contrôle ne s'appliquent qu'aux modèles que vous écrivez. Si vous incluez un modèle ou utilisez une macro d'un tiers, cependant, ils ont écrit que le modèle s'appliquera à cette partie.
Pour réduire les espaces avant et après un bloc:
{%- if form.message -%} //trims before
{{ form.message }}
{%- endif -%} // trims after