python - last - Eliminar espacios en blanco innecesarios de la plantilla renderizada de Jinja
jinja2 python3 (1)
Jinja tiene múltiples formas de controlar los espacios en blanco . No tiene una forma de pretender la salida, tiene que asegurarse manualmente de que todo se vea "bien".
La solución más amplia es establecer trim_blocks
y lstrip_blocks
en el env.
app.jinja_env.trim_blocks = True
app.jinja_env.lstrip_blocks = True
Si desea mantener una nueva línea al final del archivo, configure strip_trailing_newlines = False
.
Puede usar caracteres de control para modificar el funcionamiento del espacio en blanco alrededor de un bloque. -
Siempre elimina los espacios en blanco antes y después de una etiqueta, +
siempre lo conserva antes, anulando la configuración de env para ese bloque. El personaje puede ir al principio o al final (o ambos) de un bloque para controlar los espacios en blanco en esa dirección.
{%- if ... %} strips before
{%+ if ... %} preserves before
{%+ if ... -%} preserves before and strips after
remember that `{% endif %}` is treated separately
Tenga en cuenta que los caracteres de control solo se aplican a las plantillas que escribe. Si incluye una plantilla o utiliza una macro de un tercero, sin embargo, escribieron que la plantilla se aplicará a esa parte.
Estoy usando curl
para ver el resultado de mi aplicación web. Cuando Flask y Jinja renderizan plantillas, hay una gran cantidad de espacio en blanco innecesario en la salida. Parece que se agrega renderizando varios componentes de Flask-WTF y Flask-Bootstrap. Podría quitar esto usando sed
, pero ¿hay una manera de controlar esto desde Jinja?