Имам странен проблем с прехвърлянето на правилните данни от моя python скрипт към графика (highcharts) в моя html. Използвам уеб рамка на Flask и сървър на Ubuntu. Имам две идентични html уеб страници по структура, но те се различават по предаваните към тях данни (данните произхождат от две отделни dbs). Всяка уеб страница има множество графики (високи диаграми), една конкретна графика на втората уеб страница връща неправилни точки с данни. Той връща точките от данни, предназначени за първата уеб страница. Този проблем не се появява, когато тествам на моя локален хост, само когато се изпълнява на сървъра (да, правилно съм копирал файловете на моя сървър). Тъй като може да не сте в състояние да определите проблема, всякакви идеи по отношение на отстраняване на неизправности или причини, поради които моят сървър на Ubuntu не се опреснява правилно, са много добре дошли. Извинявам се, ако този въпрос е неясен, това не е най-лесният проблем за предаване чрез текст. Ето примерен код... Изпълнявам скриптове в python на моя сървър и те се предават на моя html чрез моя init файл на колбата.
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
НАЧАЛЕН ФАЙЛ
from flask import Flask, render_template, session, request, jsonify, json
import requests
import os, sys
PROJECT_ROOT = os.path.dirname(os.path.realpath(__file__))
sys.path.append(os.path.join(PROJECT_ROOT, 'Yahoo_Fantasy'))
from stats_fantasy import *
app = Flask(__name__)
@app.route('/html1')
def LowerMerion():
averages = averages_lm()
len_averages = len(averages['managers'])
return render_template("html-1.html", title="title", averages=averages, len_averages=len_averages)
@app.route('/html2')
def SimgaChi():
averages = averages_ex()
len_averages = len(averages['managers'])
return render_template("html-2.html", title="title", averages=averages, len_averages=len_averages)
if __name__ == "__main__":
app.run(debug=True)
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_LM(). Мисля, че неправилно му предадох тези данни от самото начало и сега изглежда не иска да се промени.
{% for i in range(len_managers) %} {{ draft_pos.pick[i] }}, {% endfor %}
? - person Paweł Fus   schedule 21.07.2015