答案 0 :(得分:5)
在创建应用时,您似乎可以使用'autoescape'选项设置文件扩展名。查看https://github.com/mitsuhiko/flask/blob/master/flask/app.py
处的create_jinja_environment()方法答案 1 :(得分:3)
感谢@Cagez's answer我能够提出一个强大(推荐)的解决方案。
根据a post on the Flask mailing list,执行此操作的方法是覆盖flask.Flask.select_jinja_autoescape()
。该帖子中的链接片段演示如何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__)