Newlines wirken sich nur in bestimmten Fällen auf das HTML-Rendering aus. Sie müssten ein HTML-Tag verwenden, das eine neue Zeile darstellt, z. B. <br/>
.
So stellt sich heraus, dass flask autodescapes HTML-Tags. Wenn Sie also das <br>
-Tag hinzufügen, werden sie nur auf dem Bildschirm gerendert, anstatt Zeilenumbrüche zu erstellen.
Es gibt zwei Problemumgehungen:
Teilen Sie den Text in ein Array auf
%Vor%Und dann innerhalb der Vorlage, verwenden Sie eine for-Schleife:
%Vor%Deaktivieren Sie das automatische Dekodieren
Zuerst ersetzen wir das \n
durch <br>
mit replace:
Dann deaktivieren wir das Auto-Scaping, indem wir den Block, in dem wir dies benötigen, mit
umgeben %Vor%Wir werden jedoch davon abgehalten:
Wenn Sie dies tun, seien Sie bitte sehr vorsichtig mit den Variablen, die Sie in diesem Block verwenden.
Ich denke, die erste Version vermeidet die in der zweiten Version vorhandenen Sicherheitslücken und ist trotzdem recht einfach zu verstehen.