在将正确的数据从python脚本传输到html中的图形(highcharts)时,我遇到了一个奇怪的问题。我使用的是FlaskWeb框架和Ubuntu服务器。我有两个结构相同的html网页,但它们传递给它们的数据不同(数据来自两个独立的数据库)。每个网页都有多个图表(highcharts),第二个网页上的一个特定图形是返回错误的数据点。它返回第一个网页的数据点。在本地主机上测试时,只有在服务器上运行时才会出现此问题(是的,我已将文件正确复制到服务器上)。由于您可能无法确定问题所在,因此非常欢迎您提出任何关于故障排除或我的Ubuntu服务器无法正常刷新的原因的想法。我很抱歉,如果这个问题不清楚,这不是最容易通过文字传达的问题。下面是示例代码…我在我的服务器上用python运行脚本,它们通过flask init文件中继到html。在
PYTHON脚本
import os, sqlite3, datetime, pandas as pd, numpy as np
PROJECT_ROOT = os.path.dirname(os.path.realpath(__file__))
DATABASE = os.path.join(PROJECT_ROOT, 'folder', 'my.db')
conn = sqlite3.connect(DATABASE)
c = conn.cursor()
averages_lm = (pd.read_sql("SELECT AVG(points_for) AS points_for, AVG(points_against) AS points_against, \
AVG(num_moves) AS moves, AVG(num_trades) AS trades, AVG(wins) AS wins, AVG(losses) AS losses, \
manager_name FROM standings WHERE curweek > 14 GROUP BY manager_name", conn))
averages_ex = (pd.read_sql("SELECT AVG(points_for) AS points_for, AVG(points_against) AS points_against, \
AVG(num_moves) AS moves, AVG(num_trades) AS trades, AVG(wins) AS wins, AVG(losses) AS losses, \
manager_name FROM standings_ex WHERE curweek > 14 GROUP BY manager_name", conn))
def averages_LM():
global averages_lm
return averages_lm
def averages_EX():
global averages_ex
return averages_ex
初始化文件
^{pr2}$HTML(片段)
<script>
$(function () {
$('#chart-4').highcharts({
chart: {
type: 'column'
},
title: {
text: 'Career Averages Per Season '
},
subtitle: {
text: 'Regular Season'
},
xAxis: {
categories: [ {% for i in range(len_managers) %} '{{ averages.manager_name[i] }}', {% endfor %}
],
crosshair: true
},
yAxis: {
min: 0,
title: {
text: 'Total Per Season'
}
},
tooltip: {
headerFormat: '<span style="font-size:10px">{point.key}</span><table>',
pointFormat: '<tr><td style="color:{series.color};padding:0">{series.name}: </td>' +
'<td style="padding:0"><b>{point.y:.1f} pts</b></td></tr>',
footerFormat: '</table>',
shared: true,
useHTML: true
},
plotOptions: {
column: {
pointPadding: 0.2,
borderWidth: 0
}
},
series: [{
name: 'Avg Wins',
data: [{% for i in range(len_managers) %} {{ averages.wins[i] }}, {% endfor %}]
}, {
name: 'Avg Losses',
data: [{% for i in range(len_managers) %} {{ averages.losses[i] }}, {% endfor %}]
}, {
name: 'Avg Moves',
data: [{% for i in range(len_managers) %} {{ averages.moves[i] }}, {% endfor %}]
}, {
name: 'Avg Trades',
data: [{% for i in range(len_managers) %} {{ averages.trades[i] }}, {% endfor %}]
}, {
name: 'Avg Draft Pick',
data: [{% for i in range(len_managers) %} {{ draft_pos.pick[i] }}, {% endfor %}]
}, ]
});
});
</script>
同样,有些奇怪的事情发生了……当我修改图的文本时,脚本会改变,但是不管出于什么原因,传递给它的数据是来自函数averages\ulm()的数据。我想我从一开始就错误地传递了这个数据,现在它似乎不想改变。在
在第一次查看代码之后,您似乎在两个视图中返回了相同的数据。行:
两种观点都是一样的,不是吗
^{pr2}$是吗?在
另外,如果你的两个html模板是相同的,你不需要创建两个单独的页面,你只需为两个视图使用一个模板,模板的内容将取决于你从视图传递的数据。在
相关问题 更多 >
编程相关推荐