如何在 jinja2 中对危险的未经处理的输入进行 html 转义?
我可以在模板内完成还是必须在 python 代码中完成?
我有一个可能包含 da
Can I do it inside the template or must it be done in python code?
I have a variable that may contain da<ngero>u&s chars. How do I escape it in jinja2?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
例如
通过
|e
过滤器进行管道传输Docs:
e.g.
Pipe it through the
|e
filterDocs:
您还可以告诉环境自动转义所有内容:
注意:在 jinja1 中,这是 auto_escape
You could also tell the environment to autoescape everything:
note: in jinja1 this is auto_escape
如果你想在程序中转义 html,你可以这样做(示例):
If you want to escape html in your programme, you can do it like this(example):
Flask 有一个内置的
tojson
过滤器:http://flask .pocoo.org/docs/templated/#standard-filters
Flask has a built in
tojson
filter:http://flask.pocoo.org/docs/templating/#standard-filters
您可以进行字符串检查并替换为相应的转义字符。
例如:
string=我是特殊字符<
执行以下操作:
请注意,在您的代码中,t 和 ; 之间有空格。已被淘汰。此处无法消除它,因为它将被格式化为显示 <相反 :P
然后使用 jinja2 打印出格式化的字符串。 <<应该出现在您的显示屏上。
You can do a string check and replace with the corresponding escaped characters.
For example:
string=I am a special character <
Do the following:
Note that in your code, the space between t and ; has been eliminated. Can't eliminate this here as it will be formatted to show < instead :P
Then use jinja2 to print out the formatted string. The < should appear in your display.