擅长:python、mysql、java
<p>多亏了<a href="https://stackoverflow.com/a/13223175/1944">@Cagez's answer</a>我才想出了一个健壮的(和推荐的)解决方案。在</p>
<p>根据<a href="http://flask.pocoo.org/mailinglist/archive/2011/1/29/select-jinja-autoescape/#f101cd7788e8dfa062ed32041eb1bc67" rel="nofollow noreferrer">a post on the Flask mailing list</a>,方法是重写<code>flask.Flask.select_jinja_autoescape()</code>。在那篇文章中演示如何<a href="http://flask.pocoo.org/snippets/41/" rel="nofollow noreferrer">override which templates are autoescaped</a>的链接片段不太管用,所以我想出了以下的方法,确实管用:</p>
<pre><code>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__)
</code></pre>
<p>我把它放在我的主Flask应用程序文件的顶部,替换了通常的<code>app = Flask(__name__)</code></p>