Lors de l'écriture d'une instruction for / if avec le modèle jinja2, la manière des sauts de ligne change en fonction de la présence ou de l'absence de tirets et de la position. Je me perds toujours en écrivant une déclaration for, donc je vais la résumer. Comment écrire pour obtenir la sortie suivante?
production
start
apple0
orange0
apple1
orange1
end
Le modèle suivant sera la norme pour cette fois. Placez des tirets avant et après la position de début et la position de fin de l'instruction for.
jinja_test1.j2
start
{%- for i in range(2) -%}
apple{{ i }}
orange{{ i }}
{%- endfor -%}
end
Il y a un saut de ligne uniquement entre la pomme et l'orange. Il semble que le contenu écrit dans l'instruction for rompra la ligne sans autorisation.
production
startapple0
orange0apple1
orange1end
jinja_test2.j2
start
{% for i in range(2) -%}
apple{{ i }}
orange{{ i }}
{%- endfor -%}
end
Il y a eu une pause entre start et apple0. Avant la position de début de l'instruction for, un saut de ligne se produit une seule fois au début de l'instruction for.
production
start
apple0
orange0apple1
orange1end
jinja_test3.j2
start
{%- for i in range(2) %}
apple{{ i }}
orange{{ i }}
{%- endfor -%}
end
Il y a un saut de ligne avant apple0 et apple1. Après la position de début de l'instruction for, un saut de ligne se produit à chaque fois à la position de départ dans l'instruction for.
production
start
apple0
orange0
apple1
orange1end
jinja_test4.j2
start
{%- for i in range(2) -%}
apple{{ i }}
orange{{ i }}
{% endfor -%}
end
Il y a maintenant un saut de ligne après orange0 et orange1. Avant la position de fin de l'instruction for, un saut de ligne se produit à chaque fois sur la dernière ligne de l'instruction for.
production
startapple0
orange0
apple1
orange1
end
jinja_test5.j2
start
{%- for i in range(2) -%}
apple{{ i }}
orange{{ i }}
{%- endfor %}
end
Un saut de ligne est maintenant inséré après orange1. Après la position de fin de l'instruction for, il semble que la ligne ne saute qu'une seule fois en quittant l'instruction for.
production
startapple0
orange0apple1
orange1
end
Sur la base du contenu jusqu'à présent, c'est comme suit.
Position pour effacer les traits d'union | Comment casser une ligne |
---|---|
Avant la position de départ de l'instruction for | Une seule pause au début de l'instruction for |
derrière la position de départ de l'instruction for | Pause à chaque fois au début de la boucle |
Avant la position de fin de l'instruction for | Pause à chaque fois à la fin de la boucle |
derrière la position finale de l'instruction for | Une seule pause à la fin de l'instruction for |
Autrement dit, pour obtenir la première sortie ・ Deux sauts de ligne entre start et apple0 → Pas besoin de tirets avant et après la position de début de l'instruction for ・ Il est nécessaire de couper deux fois la ligne entre orange1 et la fin. → Pas besoin de tirets avant et après la position de fin de la phrase for Donc, "Effacer tous les traits d'union" est la bonne réponse, et c'est comme suit.
jinja_test6.j2
start
{% for i in range(2) %}
apple{{ i }}
orange{{ i }}
{% endfor %}
end
production
start
apple0
orange0
apple1
orange1
end
Recommended Posts