2024-09-30 16:24:40 发布
网友
The Flask docs state:
autoescaping is enabled for all templates ending in .html, .htm, .xml as well as .xhtml
如何为以.jhtml扩展名结尾的模板启用自动转义?在
看起来你可以在创建应用程序时用“autoescape”选项设置文件扩展名。看看位于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()。在那篇文章中演示如何override which templates are autoescaped的链接片段不太管用,所以我想出了以下的方法,确实管用:
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__)
app = Flask(__name__)
看起来你可以在创建应用程序时用“autoescape”选项设置文件扩展名。看看位于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()
。在那篇文章中演示如何override which templates are autoescaped的链接片段不太管用,所以我想出了以下的方法,确实管用:我把它放在我的主Flask应用程序文件的顶部,替换了通常的
app = Flask(__name__)
相关问题 更多 >
编程相关推荐