2016-01-22 56 views
0

我工作的一个基于Python的谷歌应用程序引擎项目由蟒蛇处理程序获取数据的JavaScript。问题使用Jinja2的和谷歌应用程序引擎

而且在我试图使用Jinja2的从蟒蛇处理器发送数据(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)) 

head标签内码

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

能否请你帮我,我做了错误。

+0

什么是呈现的html/js的样子?如果有任何错误,你会看到什么?没有人是离子的位置来运行你的代码,你需要提供更多的信息 –

+0

试试这个 VAR keyListToPopulate = {{键列表| escape_js |安全}}; –

回答

0

将数据放入内嵌的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"])} 
             ))