gpt4 book ai didi

javascript - 无法通过 Template Bottle 将数据发送到 Javascript

转载 作者:行者123 更新时间:2023-12-03 03:30:50 25 4
gpt4 key购买 nike

我有一个小的Python脚本,它应该将一个字符串发送到我的HTML文件中的javascript,以便在页面上呈现。但是,该脚本没有接收从 Python 文件发送给它的数据。我的代码如下:

简单.html:

<html>
<body>
<h1>Hello</h1>
<p1 id="demo"></p1>
<script>
var s = {{to_display}};
var x = document.getElementById("demo");
x.innerHTML = s;
</script>
</body>
</html>

main.py:

from bottle import Bottle, template

app = Bottle()

@app.route('/')
def index():
data = {"to_display":"HI, how are you"}
return template("simple.html", data)

if __name__ == '__main__':
app.run()

我希望页面看起来像这样:

Hello

HI, how are you

不幸的是,它只显示:

Hello

有人知道如何解决这个问题吗?

最佳答案

这里的问题是模板没有呈现有效的 JavaScript。

>>> from bottle import template
>>> data = {'to_display': 'HI, how are you'}
>>> rendered = template('/home/kev/tmp/test.html', data)
>>> print rendered
<html>
<body>
<p1 id="demo"></p1>
<script>
var s = HI, how are you;
var x = document.getElementById("demo");
x.innerHTML = s;
</script>
</body>
</html>

在浏览器中加载此 html 会引发语法错误(在 Firefox 52.3.0 上测试):

SyntaxError: missing ; before statement

问题在于 s 的定义<script> 中未引用标签。修复版本:

<html>
<body>
<p1 id="demo"></p1>
<script>
var s = "{{ to_display }}";
var x = document.getElementById("demo");
x.innerHTML = s;
</script>
</body>
</html>

渲染到此标记,它在浏览器中按预期工作:

>>> print rendered
<html>
<body>
<p1 id="demo"></p1>
<script>
var s = "HI, how are you";
var x = document.getElementById("demo");
x.innerHTML = s;
</script>
</body>
</html>

关于javascript - 无法通过 Template Bottle 将数据发送到 Javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46106642/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com