Jinja在HTML中渲染文本,保留换行符

问题描述 投票:12回答:2

我有一个这样的简单形式:

class RecordForm(Form):    
    notes = TextAreaField('Notes')

我将数据记录在三个段落中,如下所示:

para1

para2

para3

在模板中,我希望以只读方式查看该记录的内容。 (不可编辑的形式)

记录是这种情况下包含数据的模型:

<td>{{ record.notes }}</td>

-->

<td>para1 para2 para3</td>

我该怎么做才能显示多行?

python flask jinja2
2个回答
21
投票

所有空格(包括换行符)都将转换为HTML中的单个空格。

您的选择,从最好到最差:

  1. white-space: pre-wrap;放在包含元素上。这告诉HTML显示与源中显示的完全相同的所有空白,包括换行符。 (你也可以使用<pre>标签,但这也会禁用你可能不想要的自动换行。)
  2. 将纯文本视为Markdown并向其抛出Markdown处理器--Markdown所做的事情之一是在<p>中包装段落。
  3. 在Python-land中,做.replace('\n', '<br>')。但是这使得你容易受到XSS的攻击,因为字符串中可能存在其他类似HTML的垃圾,并且修复这有点痛苦。

-1
投票

如何使用<br/>标记存储您的数据

para1
<br/>
para2
<br/>
para3
© www.soinside.com 2019 - 2024. All rights reserved.