如果某人用短语打字,例如:
I see you driving
round town with the girl I love,
and I’m like: haiku.
(每行之间没有空白行,但文本写在三个单独的行上)将其写入网页上的文本框,然后按一个按钮,然后通过Django
将其存储在数据库中,然后读取该字符串返回并在页面上打印,如何将其打印在HTML页面上,而Newlines仍在文本中?
因此,而不是将其打印回: I see you driving round town with the girl I love, and I’m like: haiku.
它将打印为:
I see you driving
round town with the girl I love,
and I’m like: haiku.
我知道,如果我使用: (textarea)soAndSo.body(/textarea)
,这将保留用户最初键入文件时文件中的新线。我该如何获得相同的效果,而不必使用textarea
盒?
在拥有Linebreak符号rn
替换为<br/>
的情况下绝对是一个选项,您可能需要考虑CSS white-space
属性:
#haiku {white-space:pre;}
摆弄,值得一提
将输出包装在<pre>
中将保留格式化,<pre>soAndSo.body</pre>
一个更高级的解决方案涉及将新线变成HTML段落或线路断裂。Django对此有内置过滤器:线断裂和LineBreaksbr都可以解决问题。
如果要使用这些,请这样过滤输出:{{ soAndSo.body|linebreaks }}
在模板中使用LineBreaksbr(或Line Breaks)过滤器。
例如:
{{ value|linebreaksbr }}
如果值为
Joelnis a slug
,则输出将为Joel<br />is a slug
。
newlines在那里,它只是在html中没有做任何事情。
使用{{ content|linebreaksbr }}