Google App Engine Datastore多行条目在HTML中未显示为多行
以Google应用商店的留言本示例为例,当我们输入多行内容并保存后,再读取出来显示时,内容却变成了一行。
我们该如何让它显示得和最开始输入时一样,保持多行的格式呢?
数据库模型是这样的:
class Greeting(db.Model):
author = db.UserProperty()
content = db.StringProperty(multiline=True)
date = db.DateTimeProperty(auto_now_add=True)
而提交表单是这样的:
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>""")
1 个回答
8
HTML会忽略像 \r\n
或 \n
这样的换行符。
这里有几种解决办法:
用合适的HTML标签
<br>
来替换这些特殊字符。把多行文本放在
<pre>
标签里面。如果你在使用网页应用模板,可以试试
{{greeting.content|linebreaks}}
,这是 @wooble 的建议。在你的CSS中设置
white-space:pre
,这是 @Nick 的建议(示例可以在 这里找到)。