其他分享
首页 > 其他分享> > 变色龙换行

变色龙换行

作者:互联网

我已使用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