Gibt es eine Möglichkeit, eine neue Zeile aus einer Zeichenkette mit dem Zeichen '\ n' in flask hinzuzufügen?

8

Ich habe mit Flask gespielt, als ich auf ein seltsames Problem mit dem '\ n' Charakter stieß. es scheint nicht in meinem Browser eine Wirkung zu haben, ich habe versucht, da hinein zu stellen, aber es hat nicht funktioniert, irgendwelche Ideen?

%Vor%     
ollien 03.09.2012, 08:03
quelle

2 Antworten

8

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/> .

%Vor%     
David Robinson 03.09.2012, 08:06
quelle
10

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:

  1. Teilen Sie den Text in ein Array auf

    %Vor%

    Und dann innerhalb der Vorlage, verwenden Sie eine for-Schleife:

    %Vor%
  2. Deaktivieren Sie das automatische Dekodieren

    Zuerst ersetzen wir das \n durch <br> mit replace:

    %Vor%

    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.

    
Samarth Hattangady 17.01.2017 10:33
quelle

Tags und Links