Jinja 两者都支持,使用哪个取决于应用的配置。默认的配置未开启自动转义有这样几个原因: 使用自动转义当启用了自动转移,默认会转移一切,除非值被显式地标记为安全的。可以在应用中标记,也可以在模板中使用 |safe 过滤器标记。这种方法的主要问题是 Python 本身没有被污染的值的概念,所以一个值是否安全的信息会丢失。如果这个信息丢失,会继续转义,你最后会得到一个转义了两次的内容。 返回模板数据(宏、 super 、 self.BLOCKNAME )的函数,其返回值总是被标记为安全的。