Bottle Probleme mit Anführungszeichen in einem HTML-Formular

Django, Flask, Bottle, WSGI, CGI…
Antworten
tabellar
User
Beiträge: 186
Registriert: Mittwoch 4. September 2002, 15:28

Hallo zusammen,

obwohl ich jetzt schon seit einiger Zeit WebApplikationen schreibe,
ist bei mir heute ein (Anfänger-) Problem aufgetaucht:

In ein input-Feld eines Formulars wird das "value"-Feld mit dynamischen
Daten befüllt. Wenn jetzt in dem dynamischen Daten-String ein Wort
in Anführungszeichen steht, wird dieses im HTML-Formular-Input-Feld
des anzeigenden Browsers nicht mehr dargestellt.

Also in etwa so:
Python: dynaString = '''Hallo "Python-Forum" Mitglieder.'''
HTML: <input type="text" name="name" value="{{dynaString}}" size="100" maxlength="100">

Nach dem Parsen des HTML-Templates (mit Bottle) wird in dem Input-Feld
des HTML-Formulars dann nur noch "Hallo " angezeigt. Die Anführungszeichen
mit " ersetzen oder durch \" maskieren bringt auch nichts...

Hat jemand von Euch eine Idee, wie dieses Problem gelöst werden kann?

Grüße
Tabellar
Zuletzt geändert von tabellar am Freitag 30. August 2013, 10:42, insgesamt 1-mal geändert.
Sirius3
User
Beiträge: 17741
Registriert: Sonntag 21. Oktober 2012, 17:20

welche bottle-Version verwendest Du denn? Das Quote-Problem wurde schon vor einiger Zeit behoben.
tabellar
User
Beiträge: 186
Registriert: Mittwoch 4. September 2002, 15:28

Es scheint tatsächlich ein Bottle-Problem zu sein.

Wenn ich die Hochkommas (double quotes) durch " manuell im HTML-Code
ersetze, werden die Hochkommas richtig im Input-Feld angezeigt.

Um im Beispiel zu bleiben:
<input type="text" name="name" value="Hallo "Python-Forum" Mitglieder." size="100" maxlength="100">
Dieser Text mit Hochkommas wird im Browser richtig dargestellt.

Meine verwendete Bottle-Version v0.9.2 macht daraus ein <input type="text" name="name"
value="Hallo "Python-Forum" Mitglieder." size="100" maxlength="100">

Also das " wird zu ". (Deshalb hat das native ersetzen mit replace('"', '"') auch nicht funktioniert.
Ich werde jetzt das ganze mal mit einer neuen Version von Bottle testen.

Grüsse und danke für den Hinweis
Tabellar
Antworten