flask框架

Flask是目前十分流行的web框架,采用Python编程语言来实现相关功能。它被称为微框架,微框架中的“微”是指Flask旨在保持代码简洁且易于扩展,Flask框架的主要特征是核心构成比较简单,但具有很强的扩展性和兼容性,程序员可以使用Python语言快速实现一个网站或Web服务。

一般情况下,它不会指定数据库和模板引擎等对象,用户可以根据需要自己选择各种数据库。

这里我将数据都存储在MySQL中,所以使用flask框架时需要对MySQL数据库进行连接,读取数据后,将数据传入echarts中,进行web页面的展示。前提是在虚拟机中部署好python3的环境以及flask框架,添加好各种包以及可视化需要的js文件等。

 

Windows下安装flask

升级pip

flask框架的文件分布如下,web_see为整体框架目录,其下有static、templates两个包,分别存储不同类型的文件,static、templates的同级存放py文件为导入数据的代码。

 

static文件夹

echarts.min.js文件可以在echarts官网进行下载

templates文件夹

这里绘制的是折线图

引用MySQL的数据需要使用{{  }}引起来

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>电商服装类数据市场分析——折线图</title>
    <script src="/static/echarts.min.js"></script>  //必须引用,或者不下载到本地,直接使用链接
    <style>
        #main{
            width: 600px;
            height: 400px;
        }
    </style>
</head>
<body>
<div id="main"></div>
    <script type="text/javascript">
            // 基于准备好的dom,初始化 echarts 实例并绘制图表。
            var myChart=echarts.init(document.getElementById('main'));
            // 指定图表的配置项和数据
            var option = {
                title: {
                    text: '时间-交易价格'
                },
                dataZoom: [{
                          type: 'slider',
                          show: true, //flase直接隐藏图形
                          xAxisIndex: [0],
                          left: '9%', //滚动条靠左侧的百分比
                          bottom: -5,
                          start: 10,//滚动条的起始位置
                          end: 20 //滚动条的截止位置(按比例分割你的柱状图x轴长度)
                      }],
                xAxis: {
                    name:"时间",
                    type: 'category',
                    data:[
                    		{% for i in femaletime %}
                            	"{{ i[0] }}",
                        	{% endfor %}
                       ]},
                yAxis: {
                    name:"售价",
                    type: 'value',
                    axisLabel : {
                    formatter: '{value} 元'}
                },
                series: [
                        {
                            type: 'line',	//line折线图。bar柱形图
                            data:[{% for j in female_num %}
                            		"{{ j }}",
                        			{% endfor %}],
                            itemStyle:{normal: {color:"#FF6A6A"}}
                        },
                        {
                            type: 'line',	//line折线图。bar柱形图
                            data:[{% for k in male_num %}
                            		"{{ k }}",
                        			{% endfor %}],
                            itemStyle:{normal: {color:"#31b0d5"}}
                        },
                    ]
                };
            myChart.setOption(option);// 基于准备好的dom,初始化 echarts 实例并绘制图表。
     </script>
</body>
</html>

line.py

这里绘制的是折线图

from flask import Flask, render_template, url_for
import pymysql
import re

# 生成Flask实例
app = Flask(__name__)

@app.route("/")
def my_echart():
    # 连接数据库,***的位置需要根据自己的数据库信息进行填写
    conn = pymysql.connect('192.168.159.135', user='root', password='Root123!', db='clothing')
    cur = conn.cursor()

    sqlfemale = ' SELECT * FROM  clothes'  # 女
    sqlmale = ' SELECT * FROM  clothes2 '  # 男

    cur.execute(sqlfemale)
    femaleresult = cur.fetchall()
    cur.execute(sqlmale)
    maleresult = cur.fetchall()

    pattern = re.compile(r'\d+:\d+', re.S)

    femaletime = []
    female_num = []
    for m in range(len(femaleresult)):
        female_num.append(femaleresult[m][3])

        a = re.findall(pattern, femaleresult[m][2])
        femaletime.append(a)
        femaletime.sort() # 对时间进行排序

    # maletime = []
    male_num = []
    for n in range(len(maleresult)):
        male_num.append(maleresult[n][3])
        # a = re.findall(pattern, maleresult[n][2])
        # maletime.append(a)

    cur.close()
    conn.close()
    # 在浏览器上渲染people_flow.html(为了查看输出的数据)
    return render_template('linepic.html',femaletime=femaletime,female_num=female_num,male_num=male_num)

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

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值