我正在使用Jinja2渲染html页面,而该页面又具有生成div的Javascript代码。我需要用执行的JavaScript代码生成的html,而不是像这样的标记:
<html>
<body>
<script>create_a_div()</script>
</body>
</html>
所需的输出是:
<html>
<body>
<div></div>
</body>
</html>
函数render中可以使用任何参数吗?
我希望该JavaScript代码在客户端执行, 但出于安全原因,我不允许保存它。
答案 0 :(得分:0)
如果我清楚地了解您的要求,恐怕答案是否,则您无法在render函数中执行JavaScript代码。
您可以做的是,使用安全过滤器将html作为变量传递到模板中。
模板:
<html>
<body>
{{ custom_html|safe }}
</body>
</html>
在渲染时,请使用以下Python代码:
template.render(custom_html="<div>your html code</div>")
这将为您提供所需的输出。
您可以了解有关JINJA2模板和变量here
的更多信息