Beim Schreiben einer for / if-Anweisung mit der jinja2-Vorlage ändert sich die Art der Zeilenumbrüche in Abhängigkeit vom Vorhandensein oder Fehlen von Bindestrichen und der Position. Ich verliere mich immer, wenn ich eine for-Anweisung schreibe, also werde ich sie zusammenfassen. Wie schreibe ich, um die folgende Ausgabe zu erhalten?
Ausgabe
start
apple0
orange0
apple1
orange1
end
Die folgende Vorlage ist der Standard für diese Zeit. Setzen Sie Bindestriche vor und nach der Start- und Endposition der for-Anweisung.
jinja_test1.j2
start
{%- for i in range(2) -%}
apple{{ i }}
orange{{ i }}
{%- endfor -%}
end
Es gibt nur einen Zeilenumbruch zwischen Apfel und Orange. Es scheint, dass der in der for-Anweisung geschriebene Inhalt die Zeile ohne Erlaubnis unterbricht.
Ausgabe
startapple0
orange0apple1
orange1end
jinja_test2.j2
start
{% for i in range(2) -%}
apple{{ i }}
orange{{ i }}
{%- endfor -%}
end
Es gab eine Pause zwischen start und apple0. Vor der Startposition der for-Anweisung tritt am Anfang der for-Anweisung nur einmal ein Zeilenumbruch auf.
Ausgabe
start
apple0
orange0apple1
orange1end
jinja_test3.j2
start
{%- for i in range(2) %}
apple{{ i }}
orange{{ i }}
{%- endfor -%}
end
Vor apple0 und apple1 gibt es einen Zeilenumbruch. Nach der Startposition der for-Anweisung tritt jedes Mal an der Startposition in der for-Anweisung ein Zeilenumbruch auf.
Ausgabe
start
apple0
orange0
apple1
orange1end
jinja_test4.j2
start
{%- for i in range(2) -%}
apple{{ i }}
orange{{ i }}
{% endfor -%}
end
Nach orange0 und orange1 gibt es jetzt einen Zeilenumbruch. Vor der Endposition der for-Anweisung tritt jedes Mal in der letzten Zeile der for-Anweisung ein Zeilenumbruch auf.
Ausgabe
startapple0
orange0
apple1
orange1
end
jinja_test5.j2
start
{%- for i in range(2) -%}
apple{{ i }}
orange{{ i }}
{%- endfor %}
end
Nach orange1 wird jetzt ein Zeilenumbruch eingefügt. Nach der Endposition der for-Anweisung scheint die Zeile beim Verlassen der for-Anweisung nur einmal zu brechen.
Ausgabe
startapple0
orange0apple1
orange1
end
Basierend auf dem bisherigen Inhalt ist es wie folgt.
Position zum Löschen von Bindestrichen | Wie man eine Linie bricht |
---|---|
Vor der Startposition der for-Anweisung | Nur eine Pause am Anfang der for-Anweisung |
hinter der Startposition der for-Anweisung | Unterbrechen Sie jedes Mal am Anfang der Schleife |
Vor der Endposition der for-Anweisung | Unterbrechen Sie jedes Mal am Ende der Schleife |
hinter der Endposition der for-Anweisung | Nur eine Pause am Ende der for-Anweisung |
Das heißt, um die erste Ausgabe zu erhalten ・ Zwei Zeilenumbrüche zwischen start und apple0 → Keine Bindestriche vor und nach der Startposition der for-Anweisung erforderlich ・ Die Linie zwischen orange1 und Ende muss zweimal unterbrochen werden. → Keine Bindestriche vor und nach der Endposition des for-Satzes erforderlich "Alle Bindestriche löschen" ist also die richtige Antwort und lautet wie folgt.
jinja_test6.j2
start
{% for i in range(2) %}
apple{{ i }}
orange{{ i }}
{% endfor %}
end
Ausgabe
start
apple0
orange0
apple1
orange1
end
Recommended Posts