【问题标题】:Render only HTML using jinja2使用 jinja2 仅渲染 HTML
【发布时间】:2019-06-14 11:49:29
【问题描述】:

我正在使用 Jinja2 呈现一个 html 页面,该页面又具有生成 div 的 Javascript 代码。我需要执行 JavaScript 代码生成的 html,而不是这样的标签:

<html>
<body>
<script>create_a_div()</script>
</body>
</html>

想要的输出是:

<html>
<body>
<div></div>
</body>
</html>

我可以在函数渲染中使用任何参数来执行此操作吗?

我会让 JavaScript 代码在客户端执行, 但出于安全原因,我不允许保存它。

【问题讨论】:

    标签: javascript python html jinja2


    【解决方案1】:

    如果我清楚地理解你的要求,恐怕答案是,你无法在渲染函数中执行 JavaScript 代码。

    您可以做的是将html作为变量传递到带有safe过滤器的模板中。

    模板:

    <html>
    <body>
      {{ custom_html|safe }}
    </body>
    </html>
    

    并且在渲染时,使用以下 Python 代码:

    template.render(custom_html="<div>your html code</div>") 
    

    这将为您提供所需的输出。

    您可以阅读有关 JINJA2 模板和变量的更多信息here

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-12-23
      相关资源
      最近更新 更多