4 Stimmen

Mehrzeilige Google App Engine Datastore-Einträge werden in HTML nicht als mehrzeilig angezeigt

Am Beispiel der Google App Store Gästebuch-Demo zeigt sich, dass ein Eintrag, der über mehrere Zeilen eingegeben und gespeichert wird, beim Zurücklesen und Anzeigen in einer einzigen Zeile erscheint.
Wie können wir erreichen, dass sie genau so erscheint, wie sie ursprünglich eingegeben wurde, und zwar über mehrere Zeilen hinweg?

Das Datenmodell sieht folgendermaßen aus:

class Greeting(db.Model):
    author = db.UserProperty()
    content = db.StringProperty(multiline=True)
    date = db.DateTimeProperty(auto_now_add=True)

Und so sieht das Anmeldeformular aus:

self.response.out.write("""
          <form action="/sign" method="post">
            <div><textarea name="content" rows="3" cols="60"></textarea></div>
            <div><input type="submit" value="Sign Guestbook"></div>
          </form>
        </body>
      </html>""")

8voto

systempuntoout Punkte 68725

Html ignoriert EOL-Sonderzeichen wie \r\n o \n .

Hier sind einige Optionen:

  1. Ersetzen Sie die Sonderzeichen durch das richtige html <br> Tag

  2. Der mehrzeilige Text wird in eine <pre> Tag

  3. Falls Sie Webapp-Templating verwenden, versuchen Sie es mit {{greeting.content|linebreaks}} wie vorgeschlagen von @wooble

  4. Satz white-space:pre in Ihrem CSS, wie vorgeschlagen von @Nick (Beispiel aquí )

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X