Seite 1 von 1

Bottle: Absätze in textarea

Verfasst: Freitag 29. Juni 2012, 13:29
von seishin
Wie ist das eigentlich mit einer textarea und einem Absatz...

Sprich ich habe folgendes html Element in meinem Template:

Code: Alles auswählen

<textarea rows="2" cols="20"></textarea>
Das wird dann gespeichert in einer sqlite db, in der db ist die Spalte vom Typ TEXT.

Jetzt das Problem:
Wenn ich den Text wiederum anzeige (nicht in der textarea / zum bearbeiten / da funktioniert die nämlich), sondern einfach als Inhalt...
Sind jegliche Absätze verloren und es ist eine einzige String-Wurst...
Angezeigt wirds durch:

Code: Alles auswählen

%for row in master:
    inhalt: {{row[3]}}
%end
Ja, ich hätte aber natürlich gern das er die Absätze beachtet...
(was ich ebenfalls schon probiert habe... da einfach mal mit html rein zu knallen <br> ja das gibt er dann auch einfach zurück...)

Danke für eure Hilfe!

Beste Grüße
sei

Re: Bottle: Micro Web Framework

Verfasst: Freitag 29. Juni 2012, 13:36
von BlackJack
@seishin: Es gibt keine Absätze in ``<textarea>``. Du gibst da Zeilenumbrüche ein, und die werden auch übertragen und bei Dir in der DB gespeichert. Wenn Du das einfach so in den HTML-Quelltext steckst, zeigt der Browser die Zeilenumbrüche so an, wie er das halt für gewöhnlich tut (ausserhalb von ``<pre>``) — nämlich gar nicht. Wenn Du Absätze haben möchtest, musst Du diese entsprechend im Text identifizieren und zwischen ``<p>``-Tags stecken.

Re: Bottle: Micro Web Framework

Verfasst: Freitag 29. Juni 2012, 13:37
von deets
Das ist wohl kaum der richtige Thread dafuer, oder? Vielleicht splittet einer der Moderatoren das raus.

Und die Antwort ist recht simpel: HTML kennt kein newline. Entweder du packst den Text in ein <pre>-tag, oder du machst das, was du selbst schon angedeutet hast. Dann musst du aber natuerlich sicherstellen, dass die Templating-Engine das auch als HTML und nicht als Text behandelt, der escaped wird:

http://bottlepy.org/docs/dev/stpl.html# ... statements

Re: Bottle: Absätze in textarea

Verfasst: Freitag 29. Juni 2012, 13:42
von lunar
@deets: Ist getrennt...

Re: Bottle: Absätze in textarea

Verfasst: Freitag 29. Juni 2012, 13:58
von seishin
ja, hätte ich evtl. erwähnen sollen ist halt bottlepy...

Vielen Dank! pre tut genau was es soll.

EDIT: Ach schau an... in den Comments.
One of the SimpleTemplate options allows you to define your own HTML escape function.

SimpleTemplate(my_template, escape_func=my_html_escape)
bottle includes a basic html_escape function that is used by default but can be expanded as needed. For instance, if you want all newlines to get turned into <br> you can create a function like so:

def my_html_escape(string):
return bottle.html_escape(string).replace("\n", "<br>")

Handy!
*Ian Epperson
http://bottlepy.org/docs/dev/stpl.html# ... statements