4

烧瓶文档状态

为所有以 .html、.htm、.xml 和 .xhtml 结尾的模板启用自动转义

如何为以 .jhtml 扩展名结尾的模板启用自动转义?

4

2 回答 2

7

看起来您可以在创建应用程序时使用“自动转义”选项设置文件扩展名。看看https://github.com/mitsuhiko/flask/blob/master/flask/app.py上的 create_jinja_environment() 方法

于 2012-11-04T21:35:47.543 回答
4

感谢@Cagez 的回答,我能够提出一个强大的(和推荐的)解决方案。

根据Flask 邮件列表上的帖子,这样做的方法是覆盖flask.Flask.select_jinja_autoescape()。该帖子中的链接片段演示了如何覆盖自动转义的模板并不太有效,所以我想出了以下内容,它确实有效:

class JHtmlEscapingFlask(Flask):

    def select_jinja_autoescape(self, filename):
        if filename is None:
            return False
        if filename.endswith('.jhtml'):
            return True
        return Flask.select_jinja_autoescape(self, filename)

app = JHtmlEscapingFlask(__name__)

我把它放在我的主要 Flask 应用程序文件的顶部,替换了通常的app = Flask(__name__)

于 2012-11-05T13:56:24.177 回答