Connexion / Flask / Jinja渲染模板字符串

时间:2017-12-14 15:44:19

标签: flask jinja2

我想将html放在字符串中,而不是文件中,如:

t = """
<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>foo</title>
</head>

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

"""

script = ...
render_template_string(t, script=script)

然而,当我进入实际的网页时,我看不到带有脚本的html页面,我看到垃圾:

"\n<!doctype html>\n<html lang=\"en\">\n<head>\n <meta charset=\"utf-8\">\n <title>foo</title>\n</head>\n\n<body>\n \n<script\n src=\"http://localhost:5006/bkapp/autoload.js?bokeh-autoload-element=ff639949-97c5-40b8-9cc2-28b78be802d1&bokeh-app-path=/bkapp&bokeh-absolute-url=http://localhost:5006/bkapp\"\n id=\"ff639949-97c5-40b8-9cc2-28b78be802d1\"\n data-bokeh-model-id=\"\"\n data-bokeh-doc-id=\"\"\n></script>\n</body>\n</html>"

我该如何解决这个问题?

编辑:即使是非常简单的

t = '{{ script|safe }}'
我知道,

在浏览器中不起作用:

"\n<script\n    src=\"http://localhost:5006/bkapp/autoload.js?bokeh-autoload-element=07a43696-66af-4e54-a4e3-9a09ac242e38&bokeh-app-path=/bkapp&bokeh-absolute-url=http://localhost:5006/bkapp\"\n    id=\"07a43696-66af-4e54-a4e3-9a09ac242e38\"\n    data-bokeh-model-id=\"\"\n    data-bokeh-doc-id=\"\"\n></script>"

编辑2:我也试过

t = '{% autoescape false %}{{ script|safe }}{% endautoescape %}'

但这也不起作用。

如果重要,我正在使用Connexion。

0 个答案:

没有答案