使用 jinja2 和 google app engine 将数据从 python 处理程序获取到 javascript

Issue with fetching data from python handler to javascript using jinja2 and google app engine

本文关键字:处理 python 程序 获取 javascript 数据 jinja2 google app engine 使用      更新时间:2023-09-26

我正在做一个基于python的Google App Engine项目。

在这种情况下,我尝试使用 jinja2 将数据(python 列表)从 python 处理程序发送到 javascript,但无法在 javascript 中接收数据。

我什至尝试发送简单的键值而不是列表和 json,但这也没有奏效。

这是我的python处理程序代码:

mainDataList=[]
keyList = ['key1','key2','key3']
valueList = ['value1', 'value2', 'value3']
mainDataList.append(keyList)
mainDataList.append(valueList)
template_values={
    'keyList':mainDataList[0],
    'valueList':mainDataList[1],
}
template = jinja_environment.get_template('main.html')
self.response.out.write(template.render(template_values))

头标签内的代码

<script type="text/javascript">
        var keyListToPopulate = {{ keyList | safe }};
        var valueListToPopulate = {{ valueList | safe }};
    </script>

你能帮我解决我犯的错误吗?

像这样将数据放入内联JavaScript中只是字符串处理。 您需要将正确的字符串放入模板变量中。 json.dumps()生成所需的字符串。 这样的事情应该有效:

template = jinja_environment.get_template('main.html')
self.response.out.write(template.render({"keyList":json.dumps(range(5)),
                                         "valueList":json.dumps(["A", "B"])}
                                        ))