flask框架+pygal+sqlit3搭建图形化业务数据分析平台-创新互联

一. 前言

在齐河等地区,都构建了全面的区域性战略布局,加强发展的系统性、市场前瞻性、产品创新能力,以专注、极致的服务理念,为客户提供成都网站制作、成都网站建设、外贸营销网站建设 网站设计制作定制设计,公司网站建设,企业网站建设,成都品牌网站建设,全网营销推广,成都外贸网站制作,齐河网站建设费用合理。

     先说下主要的框架和主要的图形库的特点:(个人见解)

     Django:python开发的一个重量级的web框架,集成了MVC和ORM等技术,设计之初是为了使开发复杂的、数据库驱动的网站变得简单,然而由于种种原因很少有企业用来开发大型网站,而是拿来做运维开发的很多。其注重组件的重用性和“可插拔性”。

    Flask:python开发的一个轻量级的web框架,它使用简单的核心,用 extension 增加其他功能,扩增的弹性很好,并且上手比较容易。

Echars:百度开源的一个图像库,界面可以做的很炫,但是主要是基于JS的,Django、flask对其的支持并不是很好,尤其是后台用python处理数据展现到前台很复杂。

    Highchars:一个用纯JavaScript编写的一个图表库,兼容性也比较好,可以跨平台。但是其数据需要转成json格式才可以展现,对于需要后台通过python处理的数据来说也是一个不小的负担。Django、Flask对其的支持也不是很好。

    Pygal:一个 Python 开发的动态 SVG 图表库,功能可能没有Echars或者Highchars强大,但是胜在它是一个python开发的库,采用的是python的原生语法,使用起来很方便,不需要多么复杂的转换。并且flask对其的支持很好,相对来说Django对pygal的支持就差点。

    数据库选择了sqlite3,一个轻量级的关系型数据库。因为数据都是经过统计后的数据,数据量小,并且不需要特别复杂的操作。

    综上所述,经过各种尝试之后,确定了Flask+pygal+sqlite3的架构。

二.环境准备

    1.安装Python

        1). Python版本:

           3.4.3 :注意安装过程中选择把python添加到环境变量

        2). 说明

            建议选择高版本的Python,因为后面的两个库需要使用python自带的pip工具安装,否则直接下载库的安 装包的话容易安 装失败,主要是版本的          对应问题和依赖库的缺少问题。

    2.安装Flask框架

        在命令行模式下执行:

           pip install Flask

    3.安装图形库

        在命令行模式下执行:

           pip install pygal

    4.安装ORM映射库

        在命令行模式下执行:

           pip install flask-sqlalchemy

    5.下载sqlite3数据库

        直接在官网下载:http://www.sqlite.org/download.html

        选择:sqlite-tools-win32-x86-3170000.zip

        解压后包含三个可执行文件

三 、平台搭建过程

   1.创建数据库

      1)在命令行模式下,切换到sqlite3目录下,执行下面命令:

        sqlite3.exe dzj.db

      2)之后进入sqlite3命令行模式:

          create table appinfo(
                id integer key autoincrement,          
                year varchar(32),         
                month varchar(32),         
                cnt   varchar(32));

      3)字段说明(主键是必须设置的)

         Year 年份

         Month 月份

        Cnt 许可证数量

      4)插入数据

         

   2.搭建平台过程

       1)创建项目文件目录(dzj)

       2)在项目文件目录(dzj)下创建static文件夹和templates文件夹

       3)把创建的dzj.db数据库复制到当前目录下(dzj目录)

      4)在项目文件目录(dzj)下添加dzj.py 文件(注意要和项目同名),并添加以下代码:

from flask import Flask, render_templateimport pygalfrom dbconnect import dbfrom models import Appinfo
app = Flask(__name__)


@app.route('/')def APPLYTBLINFO():
    db.create_all() #在第一次调用时执行就可以
    appinfos = Appinfo.query.all()    ##选择年份
    list_year = []    ##选择月份
    list_month = []    ##月份对应的数字
    map_cnt = {}    for info in appinfos:        if info.year not in list_year:
            list_year.append(info.year)
            map_cnt[info.year] = [int(info.cnt)]        else:
            map_cnt[info.year].append(int(info.cnt))        if info.month not in list_month:
            list_month.append(info.month)
    line_chart = pygal.Line()
    line_chart.title = '信息'
    line_chart.x_labels = map(str, list_month)    for year in list_year :
        line_chart.add(str(year)+"年", map_cnt[year])    return render_template('index.html', chart=line_chart)    if __name__ == '__main__':
    app.run(debug=True)

      5)在项目文件目录(dzj)下添加dbconnect.py文件,代码如下:

from flask import Flaskfrom flask_sqlalchemy import SQLAlchemyimport os
app = Flask(__name__)
dbpath = app.root_path.replace("\\", "/")#注意斜线的方向app.config['SQLALCHEMY_DATABASE_URI'] = r'sqlite:///'+dbpath+'/dzj.db'#app.config['SQLALCHEMY_DATABASE_URI'] = r'sqlite:///D:/Python/dzj/dzj.db'app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = True#print(app.config['SQLALCHEMY_DATABASE_URI'])db = SQLAlchemy(app)

      6)在项目文件目录(dzj)下添加models.py 文件,代码如下:

from dbconnect import db##许可证申请数量class Appinfo(db.Model):    __tablename__='appinfo' ##注意这句,网上有些实例上并没有
    ##必须设置主键
    id = db.Column(db.Integer, primary_key=True)
    year = db.Column(db.String(20))
    month = db.Column(db.String(20))
    cnt = db.Column(db.String(20))    def __init__(self, year, month, cnt):
        self.year = year
        self.month = month
        self.cnt = cnt    def __str__(self):        return self.year+":"+self.month+":"+self.cnt    def __repr__(self):        return self.year+":"+self.month+":"+self.cnt    
    def save(self):
        db.session.add(self)
        db.session.commit()

      7)在templates文件下添加index.html,代码如下:

<body ><div  id="container">
    <div id="header" >
        <h3 style="font-size: 30px;  position: absolute; margin-top: 10px;margin-left: 300px;
        text-align:center;">数据走势图分析</h3>
    </div>
    <div id="leftbar" >
        <h3 >数据图总览</h3><br/>
        <table>
            <tr>
                <td>
                   <a name="appinfo" href="appinfo.html" >数量分析图</a><br>
                </td>
            </tr>         
        </table>
    </div>
    <div id="chart" >
       <embed type="p_w_picpath/svg+xml" src= {{ chart.render_data_uri()|safe }} />
    </div></div></body>

       8)在命令行下切换到dzj所在目录,执行:

          python dzj.py

         如下图没有报错,即说明运行成功:

        

       9)在浏览器输入:http://127.0.0.1:5000/ 查看结果

         

另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。

文章名称:flask框架+pygal+sqlit3搭建图形化业务数据分析平台-创新互联
URL分享:https://www.cdcxhl.com/article26/dhdgcg.html

成都网站建设公司_创新互联,为您提供网站收录企业网站制作网站设计网站建设网站营销建站公司

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

网站托管运营