Web2Py 在呈现时在列的文本中添加换行符 HTML table

Web2Py add newlines in a column's text while rendering HTML table

我正在使用以下代码使用 Web2Py 助手动态生成我的 HTML table 的内容:

response_results = []

for row in db(db.table.column_name == selected_column_val).select(db.table.ALL):
    body_col = row.body_col
    row_data = ['Col 1', row.col2, body_col.replace(".", ".<br/><br/>"), row.col4]
    response_results.append(row_data)

html = DIV(TABLE(THEAD(TR(TH('Row #'), TH('Col 1'), TH('Col 2'), TH('Col 3'), TH('Col 4')), _id=0),
             *[TR(response) for response in response_results],
             _id='records_table', _class='table table-bordered'),
       _class='table-responsive')

基本上,在这里我需要以更具可读性的方式呈现 body_col 的内容,因此我试图在每个句号“.”之后添加一些换行符。我试过使用这两个,但其中 none 有任何区别:body_col.replace(".", ".<br/><br/>")body_col.replace(".", ".\n\n")

关于显示的输出:

输入:

这是第一行。
这是第二行。
这是第三行。
这是第四行。
这是第五行。

输出:

这是第一行。
这是第二行。
这是第三行。
这是第四行。
这是第五行。

输入:

这是第一行。
这是第二行。
这是第三行。
这是第四行。
这是第五行。

输出:

这是第一行。 这是第二行。 这是第三行。 这是第四行。 这是第五行。

输入:

这是第一行。
这是第二行。
这是第三行。
这是第四行。
这是第五行。

输出:

这是第一行。<br/><br/> 这是第二行。<br/><br/> 这是第三行。<br/><br/> 这是第四行。<br/><br/> 这是第五行。

即使我在 Notepad++ 中分析 input/output 文本以检查是否存在 CR LF 字符。我注意到 CR LF 始终存在,除非仅在动态生成时除外。在那种情况下,不存在 CR LF 字符,即使它们存在于 body_col 的输入数据中。不知何故,当 Web2Py HTML 助手生成输出 table.

时,它们都被剥离了

我也提到了这个link,但不能完全理解它来满足我的特定需求。

有人可以指导我如何完成这项任务吗?

非常感谢您的帮助。

代码的一个问题是它包含原始 HTML,web2py 将转义并在呈现的输出中逐字显示。为防止这种情况,您必须将任何原始 HTML 字符串包装在 XML() 帮助器中:

row_data = ['Col 1', row.col2, XML(body_col.replace(".", ".<br/><br/>")), row.col4]

但是,这可能不是您唯一的问题——如果是,您会希望在页面中看到文字“<br/>”字符串,但您并没有看到。