如何使用 Jinja2 模板在烧瓶中解码 ' [重复]
Posted
技术标签:
【中文标题】如何使用 Jinja2 模板在烧瓶中解码 ' [重复]【英文标题】:How to decode ' in flask with Jinja2 template [duplicate] 【发布时间】:2016-08-22 10:45:40 【问题描述】:当我尝试在 Jinja2 模板中写入来自 wtforms 的错误时,它返回未解码的报价。我该如何解决?
% if registrationForm.errors %
<script>swal("Error!", " registrationForm.errors['password'] ", "error")</script>
% endif %
错误等于
'email': ['This field is required.'], 'username': ['This field is required.'], 'acceptTOS': ['This field is required.'], 'csrf_token': ['CSRF token missing'], 'password': ['This field is required.']
【问题讨论】:
【参考方案1】:使用 safe
模板过滤器 - 它告诉 jinja2 不要再应用任何过滤器。
将字符串标记为可以安全地包含在 html/XML 输出中,而无需 需要逃脱。
用法示例:
errors|safe
或者到,
errors | tojson | safe
或者也可以在 Flask 中使用Markup
将其标记为安全。
【讨论】:
效果很好,但“tojson | safe”在参数列表后抛出“Uncaught SyntaxError: missing )” 我只是建议 errors |安全 就足够了 - 在早期版本的烧瓶 错误 | tojson |安全 用于使用。 最后,我用这个<script>swal("Error!", "% for error in registrationForm.errors.keys() %[ error ] registrationForm.errors[error][0] \n% endfor %", "error")</script>
解决了更多问题
错误 | tojson |安全 或 错误 | tojson 对我有用,但不是 errors|safe 以上是关于如何使用 Jinja2 模板在烧瓶中解码 ' [重复]的主要内容,如果未能解决你的问题,请参考以下文章
使用 Flask 和 Jinja2 单击时无法加载模板 HTML [重复]
如何让 python 使用 Flask 和 JINJA2 从动态表中检索用户输入的数据