Python Web2可在列中添加换行符';在呈现HTML表时删除文本
我使用以下代码使用Web2Py helpers动态生成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/>
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。注意,我使用一些示例数据尝试了您的精确代码,但无法复制您声称观察到的输出(我在呈现的输出中看到了文本“
”字符串,而不是没有看到任何更改,这是基于您的代码所期望的).非常感谢安东尼解决了这个问题,即使我没有准确地描述我的问题。我重新检查了输出,确实看到了文本“
”标记,正如您所怀疑的那样。