在App Engine上使用Google可视化API失败...(Python)
我在我的应用程序中尝试使用谷歌可视化API提供的可排序表格,但它没有正常工作。我的应用是用Python写的,使用的是Django框架。
当我把生成的HTML和JavaScript代码复制下来,并保存为一个普通的HTML文件时,它运行得很好。这让我觉得问题可能出在http://www.google.com/jsapi'>没有被包含进来,或者无法正常运行。
有没有其他人遇到过这个问题?我是不是在app.yaml中漏掉了什么配置?
谢谢!
编辑:这是生成的HTML代码:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1 DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>
Test
</title>
<link href="/css/css.css" rel="stylesheet" type="text/css" />
<script type='text/javascript' src='http://www.google.com/jsapi'></script>
<script type='text/javascript'>
google.load('visualization', '1', {packages:['table']});
google.setOnLoadCallback(drawTable);
function drawTable() {
var data = new google.visualization.DataTable();
data.addColumn('string', 'Number');
data.addColumn('string', 'Status');
data.addColumn('string', 'Nickname');
data.addColumn('string', 'Target');
data.addColumn('string', 'Recording');
data.addRows(2);
data.setCell(0, 0, '0987654321');
data.setCell(0, 1, 'Active');
data.setCell(0, 2, 'Nothing');
data.setCell(0, 3, '1234567890');
data.setCell(0, 4, 'Enabled');
data.setCell(1, 0, '0987654321');
data.setCell(1, 1, 'Active');
data.setCell(1, 2, 'Nothing');
data.setCell(1, 3, '1234567890');
data.setCell(1, 4, 'Enabled');
var table = new google.visualization.Table(document.getElementById('table_div'));
table.draw(data, {showRowNumber: true});
}
</script>
</head>
<body>
<div id='table_div'></div>
</body>
</html>
如果保存为HTML文件,这段代码运行得很好。
app.yaml:
application: testapp
version: 2
runtime: python
api_version: 1
handlers:
- url: /(.*\.(mp3|wav))
static_files: \1
upload: (.*\.(mp3|wav))
- url: /css
static_dir: css
- url: /.*
script: main.py
相关问题:
2 个回答
0
等一下,你是在什么地方进行渲染的呢?visapi的东西应该放在客户端。你是把它放在那了吗?(如果这个问题很明显,那我就抱歉了;不过从你提问的方式来看,确实不是很清楚。)
提供更多细节肯定会有帮助。
0
如果还有其他人遇到这个问题,我之前搞错了页面的头部信息,使用了我为XML输出创建的同一个函数来渲染页面。
这行代码把它搞坏了:handler.response.headers["Content-Type"] = "text/xml"