使用Jinja2自定义html转义

2024-09-29 20:17:10 发布

您现在位置:Python中文网/ 问答频道 /正文

在转义用户生成的文本并将其显示为html之前,可以使用多种方法进行一些转换。例如,可能需要将换行符转换为<br/>,“linkify”url,用&nbsp;替换空格,等等

对于如何进行这种类型的转换,典型的建议是首先转义文本,然后在事实发生后进行适当的替换。例如,https://stackoverflow.com/a/14795104(这一个用于Mako而不是Jinja2,但它们似乎都使用markupsafe进行转义)建议将已经转义的文本传递到函数中,然后调用s.replace("\n", Markup("<br />"))。然而,这些建议似乎有点脆弱——它们假设转义过程不会引入任何要替换的字符,并且在“链式”时效果不太好。例如,如果您首先将url转换为链接,然后尝试用&nbsp;替换空格,那么您可能会得到类似<a&nbsp;href=...的内容。在

似乎更“正确”的处理方法是转义函数将某种类型的转换函数作为参数,以允许文本作为转义过程的一部分进行翻译。金贾2号有没有现成的方法?在


Tags: 方法函数用户文本brurl类型过程

热门问题