如何用html的python(django)字符串中的newlines读回和打印文本



如果某人用短语打字,例如:

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 }}

之类的过滤器

最新更新