flask传json数据到echarts的基本框架

flask获取数据传到前端echarts的基本框架
1、文件位置

echarts.htmll放在templates里,templates跟flask.py同级目录

2、flask.py
from flask import Flask,redirect,url_for,request,render_template,flash
from sqlalchemy import create_engine
import pymysql

app=Flask(__name__)

@app.route('/')    //展示htnl
def opinion():
    return render_template("echarts.html")

@app.route('/mysql', methods=['GET', 'POST'])   //从数据库得到数据,返回json格式传送到前端
def mysql():
    //用pymysql
    //conn=pymysql.connect(host="localhost",port=3306,user="root",passwd="ZJM199933",db="stu",charset="utf8")
    //cursor=conn.cursor() 
    //reslut=cursor.execute('select * from table');
    //conn.close()

    //用create_engine
    engine = create_engine('sqlite:///./weibo.db', echo=True)  //连接数据库
    connect=engine.connect()
    result = connect.execute('select * from table')
    name=[]
    data=[]
    for item in result:
        name.append(item[0])
        data.append(item[1])
    return {'gender': gender, 'data': data}

if __name__ == '__main__':
    app.run('127.0.0.1', '5000', True)

http://127.0.0.1:5000/mysql
查看数据
如:在这里插入图片描述

3、echarts.html

第一种data,是数组形式

data=[{value: 335, name: ‘xxx’}, {value: 335, name: ‘xxx’} ]

push() 方法可向数组的末尾添加一个或多个元素,并返回新的长度。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>舆情报告</title>
    <script src="/static/js/echarts.min.js"></script>
    <script src="/static/js/china.js"></script>
    <script src="/static/js/echarts-wordcloud.min.js"></script>
    <script src="/static/js/jquery-3.5.1.min.js"></script>
</head>
<body>
    <div id="xxx" style="width: 600px;height: 400px;"></div>

<script>
        
        var my_chart = echarts.init(document.getElementById('xxx'));

        $.post('/mysql', function (data) {
            var data = [];
            for (let i = 0; i < data.data.length; i++) {
               data.push({
                    'value': data.data[i],
                    'name': data.name[i]
                })
            }
            var option = {
                       ...
                      series: [{
                            ...
                            data: data
                               }]
            };
            my_chart.setOption(option);
        });
    </script>
</body>
</html>

第二种data,直接是数值

data: [820, 932, 901, 934, 1290, 1330, 1320]

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <title>舆情报告</title>
    <script src="/static/js/echarts.min.js"></script>
    <script src="/static/js/china.js"></script>
    <script src="/static/js/echarts-wordcloud.min.js"></script>
    <script src="/static/js/jquery-3.5.1.min.js"></script>
</head>
<body>
    <div id="xxx" style="width: 600px;height: 400px;"></div>

<script>
        
        var my_chart = echarts.init(document.getElementById('xxx'));

        $.post('/mysql', function (data) {
            var option = {
                        ....
                      series: [{
                            ...
                            //data: data.数值名称
                            data: data.data  //跟flask.py设置一致
                               }]
            };
            my_chart.setOption(option);
        });
</script>
</body>
</html>
  • 0
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值