【发布时间】:2012-11-04 21:06:31
【问题描述】:
【问题讨论】:
标签: python templates flask jinja2
【问题讨论】:
标签: python templates flask jinja2
看起来您可以在创建应用程序时使用“自动转义”选项设置文件扩展名。看看https://github.com/mitsuhiko/flask/blob/master/flask/app.py的create_jinja_environment()方法
【讨论】:
感谢@Cagez's answer,我能够提出一个强大的(和推荐的)解决方案。
根据a post on the Flask mailing list,这样做的方法是覆盖flask.Flask.select_jinja_autoescape()。该帖子中的链接 sn-p 演示了如何使用 override which templates are autoescaped 并不太有效,所以我想出了以下方法,它确实有效:
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__)
【讨论】: