Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Web2可在列中添加换行符';在呈现HTML表时删除文本_Python_Html_Web2py - Fatal编程技术网

Python Web2可在列中添加换行符';在呈现HTML表时删除文本

Python Web2可在列中添加换行符';在呈现HTML表时删除文本,python,html,web2py,Python,Html,Web2py,我使用以下代码使用Web2Py helpers动态生成HTML表的内容: 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/>

我使用以下代码使用Web2Py helpers动态生成HTML表的内容:

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')
response_results=[]
对于数据库中的行(db.table.column\u name==selected\u column\u val)。选择(db.table.ALL):
body\u col=行。body\u col
行数据=['Col 1',row.col2,body_Col.replace(“.”,“

”)行,col4] 响应结果追加(行数据) html=DIV(表(THEAD(TR(TH('Row#'))、TH('col1')、TH('col2')、TH('col3')、TH('col4'))、TH id=0), *[TR(响应)用于响应结果中的响应], _id='records\u table','u class='table-table-bordered'), _class='table-responsive')
基本上,在这里,我需要以一种更具可读性的方式呈现body_col的内容,因此我尝试在每个句点“.”之后添加一些换行符。我尝试过使用这两种方法,但都没有任何区别:
body\u col.replace(“.”,“

”)和
body\u col.replace(“.”,“\n\n”)

关于显示的输出:

  • 当我在HTML中直接添加带有

    标记的输出时,它看起来很好
输入:

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

输出:

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

  • 当我使用
    body\u col.replace(“.”,“\n\n”)
    动态呈现输出HTML时,它作为一行出现,没有任何换行符
输入:

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

输出:

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

  • 当我使用
    body\u col.replace(“.”,“

    ”)动态呈现输出HTML时,它是一行,没有任何换行符,但显示了文本

    标记
输入:

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

输出:

这是第一行。


这是第二行。


这是第三行。


这是第四行。


这是第五行

甚至当我在Notepad++中分析输入/输出文本以检查是否存在CR LF字符时。我注意到CR LF始终存在,除非是动态生成的。在这种情况下,不存在CR LF字符,即使它们存在于
body\u col
的输入数据中。不知何故,当web2pyhtml助手生成输出表时,它们都被剥离了

我也提到了这一点,但不能完全满足我的具体需求

有人能指导我如何完成这项任务吗


非常感谢您的帮助。

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

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

”),row.col4]

但是,这可能不是您唯一的问题——如果是,您希望看到页面中显示的文本“

”字符串,但您没有看到。

您可以检查句点是否为ASCII字符x2E或其他类似的字符。当您使用“
”版本时,输出是什么样子的?@DominicLarkin,你能详细说明一下吗?我不太明白如何在我的代码中检查ASCII字符x2E。有些东西不正确。如果“
”版本实际上导致了任何替换,那么您将在可见输出中看到文本“
”字符串(因为您没有将HTML包装在XML()帮助器中)。此外,web2py不会删除换行符(尽管文本中的换行符不会导致呈现的HTML中出现实际的换行符)。上述代码或示例数据中缺少某些内容。我建议创建一个复制问题的最小应用程序,并将其发布到Google Group。注意,我使用一些示例数据尝试了您的精确代码,但无法复制您声称观察到的输出(我在呈现的输出中看到了文本“
”字符串,而不是没有看到任何更改,这是基于您的代码所期望的).非常感谢安东尼解决了这个问题,即使我没有准确地描述我的问题。我重新检查了输出,确实看到了文本“
”标记,正如您所怀疑的那样。