Python flask + Mysql +Echarts :实现数据可视化(柱状图)

​​步骤一:建立Myslq数据库连接

import pymysql

class Mysql(object):
    # 创建 Mysql 类的实例时自动调用
    def __init__(self):
        # 建立MySQL数据库连接
        self.conn = pymysql.connect(host='localhost', user='root', password='1234', database='Design', charset="utf8")
        # 创建了一个游标对象cursor,用于执行SQL命令
        self.cursor = self.conn.cursor()

    # 这个方法使得 Mysql 类的实例可以作为上下文管理器使用
    def __enter__(self):
        return self

    # 负责关闭游标和数据库连接
    def __exit__(self, exc_type, exc_val, exc_tb):
        self.cursor.close()
        self.conn.close()


    def Property(self):
        sql = "select * from Property_type limit 7;"
        self.cursor.execute(sql)
        return self.cursor.fetchall()

步骤二:开发Flask应用

from flask import Flask, send_from_directory, jsonify
from flask import render_template

from mysql import Mysql

app = Flask(__name__)

@app.route('/Property')
def getdata():
    db = Mysql()
    item = db.Property()
    return render_template('Property.html', items=item)

if __name__ == '__main__':
    app.run(debug=True)	#debug=True发生错误时会返回发生错误的地方

步骤三:创建前端页面(Property.html )

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>数据可视化</title>
     <script src="/static/echarts.min.js"></script>
    <link rel="stylesheet" href="/static/style.css">
</head>
<body>
<div id="main"></div>
    <script type="text/javascript">
            var myChart=echarts.init(document.getElementById('main'));
            var option = {
                title: {
                    text: '房屋数排名前7的房源类型',
                    left:'center'
                },
                tooltip: {
                    trigger: 'axis',
                },
                calculable: true,
                xAxis: {
                    name:"房源类型",
                    type: 'category',
                    data:[
                    		{% for item in items %}
                            	"{{ item[0]}}",
                        	{% endfor %}
                       ],
                    axisLabel: {
                        rotate: 25, // 旋转x轴标签,避免重叠
                        interval: 0 // 显示所有x轴标签
                    },
                },

                yAxis: {
                    name:"房屋数量",
                    type: 'value',
                    axisLabel : {
                    formatter: '{value} 间'}
                },
                series: [
                        {
                            type: 'bar',	//bar柱形图
                            data:[{% for item in items %}
                            		"{{ item[1]}}",
                        			{% endfor %}],
                            markLine: {
                                data: [{ type: 'average', name: 'Avg' }]
                            },
                        }
                    ]
                };
            myChart.setOption(option);
     </script>
</body>
</html>

步骤四:运行Flask应用并查看柱状图

运行完,在浏览器输入http://127.0.0.1:5000/Property可以看到html所绘制的柱状图

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

人间过客o>_<o

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值