Sto utilizzando curl
per vedere l'output della mia app Web. Quando Flask e Jinja rendono i template, c'è un sacco di spazio bianco non necessario nell'output. Sembra essere aggiunto dal rendering di vari componenti da Flask-WTF e Flask-Bootstrap. Potrei spogliarlo usando sed
, ma c'è un modo per controllare questo da Jinja?Rimuovere gli spazi bianchi non necessari dal modello reso Jinja
risposta
Jinja ha più modi per control whitespace. È non avere un modo per migliorare l'output, è necessario assicurarsi manualmente che tutto sembra "bello".
La soluzione più ampia è impostare trim_blocks
e lstrip_blocks
sull'ENV.
app.jinja_env.trim_blocks = True
app.jinja_env.lstrip_blocks = True
Se si desidera mantenere una nuova riga alla fine del file, impostare strip_trailing_newlines = False
.
È possibile utilizzare i caratteri di controllo per modificare la modalità di funzionamento degli spazi bianchi attorno a un blocco. -
rimuove sempre gli spazi bianchi, +
lo conserva sempre, sovrascrivendo le impostazioni di env per quel blocco. Il personaggio può andare all'inizio o alla fine (o entrambi) di un blocco per controllare lo spazio bianco in quella direzione.
{%- if ... %} strips before
{% if ... +%} preserves after
{%+ if ... -%} preserves before and strips after
remember that `{% endif %}` is treated separately
Nota che i caratteri di controllo si applicano solo ai modelli si scrittura. Se includi un modello o utilizzi una macro da una terza parte, tuttavia hanno scritto che il modello si applicherà a quella parte.
È '+' e '-' applicabile a tutti i tag? '{% endif +%}' mi sta dando 'atteso token' alla fine del blocco di istruzioni ', ottenuto' + '':( –
Inoltre,' {% se True +%} 'mi dà' inaspettato 'fine del blocco di istruzioni' 'Forse jinja2 si è evoluto da allora? –
Si prega di segnalare che come un bug con Jinja. – davidism
correlati: http://stackoverflow.com/questions/5191147/spaceless-tag-for-jinja-templates – davidism