变色龙换行
作者:互联网
我已使用pyramid框架构建大型Web应用程序.
除其他外,此应用程序允许用户将文本输入到文本区域表单字段中.然后将该文本保存到数据库中,当然可以再次读出并在以后显示.
要显示内容,我使用的是Chameleon Template Engine.
除换行符未正确显示(根本不显示)外,此方法均能正常工作.这可能是由于以下事实:在通过Chameleon显示时,输入到文本区域的换行符不会在HTML中引起换行符.如何解决这个问题?
这无助于用< br> -Tags替换换行符,因为默认情况下Chameleon会转义所有HTML-Tags.我知道有人可以停用此功能,但是我不想这样做,以避免跨站点脚本编写.
解决方法:
您需要将文本分成几行,然后使用循环和< br />标签:
<span tal:omit-tag=""
tal:repeat="line text_with_newlines.splitlines()">
${line}<br />
</span>
这使用str.splitlines()
method在换行符上分割文本,然后循环添加< br />在文本的每一行之后插入break标记.
您很正确,不要在视图中执行此操作,然后强制Chameleon接受您插入的< br />通过设置structure:标志来标记.幸运的是,绝对没有必要这样做.
标签:chameleon,template-tal,pyramid,zpt,python 来源: https://codeday.me/bug/20191031/1974080.html