Передача значений из Python в HTML, используя колбу и echart - PullRequest
0 голосов
/ 05 июля 2019

Я хочу передать два списка из файла .py в html, чтобы создать диаграмму с помощью html show в Интернете

Код файла xxx.py:

from flask import Flask,render_template,request

app = Flask(__name__)

@app.route('/')
def index():
    return render_template('index.html')

@app.route('/conn',methods=['POST'])
def conn():
    table_name = request.form['table_name']  
    start_date = request.form['start_date']
    end_date = request.form['end_date']
    data1 = postgresql.PostgreSql(table_name,start_date,end_date)
    data1.rfm_chart()
    segment = data1.rfm['Segment'].value_counts().to_dict()
    return render_template('chart.html', **segment)

if __name__ == '__main__':
    app.run(debug=True)

вывод сегмента: {'A': 100, 'B': 50, 'C': 25, 'D': 18}

А вот диаграмма chart.html:

<div id="main" style="width: 600px;height:400px;"></div>
<script type="text/javascript">
    var myChart = echarts.init(document.getElementById('main'));

    var option = {
        title: {
            text: 'RFM'
        },
        tooltip: {},
        legend: {
            data:['Number of players']
        },
        xAxis: {
            data: {{  }}
        },
        yAxis: {},
        series: [{
            name: '#Players',
            type: 'bar',
            data: {{  }}
        }]
    };

    myChart.setOption(option);
</script>

Я хочу, чтобы ключи сегмента были осью x, а значения - осью y. Но как я могу передать dict из .py в HTML?

1 Ответ

1 голос
/ 05 июля 2019

Вы почти у цели, просто используйте tojson фильтр как

data: {{ series_data|tojson }}

Вам нужно заменить series_data на ключ segment, который вам нужно использовать.

http://jinja.pocoo.org/docs/2.10/templates/#tojson

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...