【问题标题】:Rendering svg from flask in google app engine从谷歌应用引擎中的烧瓶渲染svg
【发布时间】:2016-01-06 15:50:12
【问题描述】:

我正在从网站上抓取 svg html 代码。现在我想用该代码(存储在 python 的变量中)呈现模板。 svg 代码是 github 的贡献图,来自 url - github.com/username/contributions。

SVG 代码 -

<svg>
.....
</svg>

我无法完成这项任务。如何将变量作为参数传递给 render_template() 函数?在某些格式中,它向我显示实际代码,在其他格式中,它根本不显示任何东西。

【问题讨论】:

    标签: python google-app-engine svg flask jinja2


    【解决方案1】:

    据我所知,Flask 使用 JINJA2 模板引擎,但同样适用于许多平台上的许多模板引擎。

    出于安全原因,默认情况下,您的代码发送到 JINJA2 模板的任何 HTML 数据都将被转义,即 &amp;lt;svg&amp;gt; 将变为 &amp;lt;svg&amp;gt;。这就是它在浏览器中向您显示实际代码的原因。

    JINJA2 允许您不转义 HTML,但这可能很危险,尤其是如果代码是由用户提供的。例如,一些邪恶的 JavaScript 可能会被注入到您的页面中。因此,您最终需要保护您的应用和用户免受此类攻击。

    也就是说,不转义 HTML 标记的选项之一是使用 safe 过滤器。例如:

    <div>
    {{ svgCode|safe }}
    </div>
    

    有关更多信息,请参阅 JINJA2 文档:http://jinja.pocoo.org/docs/dev/templates/#html-escaping

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-01-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-25
      • 2020-11-05
      相关资源
      最近更新 更多