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_template
import pygal
from dbconnect import db
from 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 Flask
from flask_sqlalchemy import SQLAlchemy
import 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 style="width: 1000px;margin: auto">
<div  id="container">
    <div id="header" style="background: burlywood;height: 50px;">
        <h2 style="font-size: 30px;  position: absolute; margin-top: 10px;margin-left: 300px;
        text-align:center;">数据走势图分析</h2>
    </div>
    <div id="leftbar" style="width: 200px;height: 600px;background: cadetblue;float: left">
        <h2 style="margin-left: 20px">数据图总览</h2><br/>
        <table>
            <tr>
                <td>
                   <a name="appinfo" href="appinfo.html" style="margin-left: 20px;">数量分析图</a><br>
                </td>
            </tr>
        </table>
    </div>
    <div id="chart" style="width: 800px;float: left">
       <embed type="image/svg+xml" src= {{ chart.render_data_uri()|safe }} />
    </div>
</div>
</body>

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

python dzj.py

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

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

时间: 2024-10-05 04:55:15

flask框架+pygal+sqlit3搭建图形化业务数据分析平台的相关文章

高可用(HA)集群的搭建 --图形化搭建(针对rhel6.5)

高可用(HA)集群的搭建 --图形化搭建(针对rhel6.5) 实验环境:iptables selinux关闭,三台主机做好解析 实验主机IP: 172.25.0.251 172.25.0.2 172.25.0.3 高可用集群包括RHCS,pacemaker+lvs,heartbeat,keepalievd. 在做实验前,先了解RHCS套件,6以下才有,7就取消了. 一些服务进程的含义如下: Luci/ricci>>web方式的集群管理(配置)工具: Ccs>>集群配置服务,(例如

使用Apache Kylin搭建企业级开源大数据分析平台

使用Apache Kylin搭建企业级开源大数据分析平台 转:http://www.thebigdata.cn/JieJueFangAn/30143.html 我先做一个简单介绍我叫史少锋,我曾经在IBM.eBay做过大数据.云架构的开发,现在是Kyligence的技术合伙人. Kylin是这两年在国内发展非常快的开源大数据项目.今天大会合作厂商中有超过一半的企业已经在使用或者正在试用Kylin,应主办方邀请,今天跟大家做一个关于如何使用Kylin构建开源大数据分析平台的分享. 这是我今天的议程

Flask框架的学习与实战(一):开发环境搭建

Flask是一个使用 Python 编写的轻量级 Web 应用框架.其 WSGI 工具箱采用 Werkzeug ,模板引擎则使用 Jinja2.很多功能的实现都参考了django框架.由于项目需要,在此记录下学习的过程及心得. 工欲善其事,必先利其器.就从搭建一套flask开发环境开始flask之旅吧. 一.平台说明 操作系统:window 7  64bit  数据库:mysql5.6  python:v2.7  开发集成软件:PyCharm5.0 二.开发环境搭建 1.安装flask框架包 1

linux 下 VNC Server安装配置及 eclipse CDT C/C++ 开发环境搭建(我用的是阿里云服务器 ubuntu 12.04 64-bit,无图形化界面)

linux 下 VNC Server安装配置及 eclipse CDT C/C++ 开发环境搭建(我用的是阿里云服务器 ubuntu 12.04 64-bit,无图形化界面): 既然要用 eclipse 可视环境下开发,那首先要安装图形界面喽!!! 对开发者来说,个人认为 linux 选择界面优先选择顺序:Awesome(性能最好) > Xfce4 > gnome > unity-2d //////////////////////////////////////////////// 首先

基于Flask框架的Python web程序的开发实战 &lt;一&gt; 环境搭建

最近在看<Flask Web开发基于Python的Web应用开发实战>Miguel Grinberg著.安道译 这本书,一步步跟着学习Flask框架的应用,这里做一下笔记 电脑只安装一个Python2.7就行了,用的IDE还是官方那个跟记事本差不多的编辑器,先原始一点,以后再用PyCharm开发,我系统是Win8.1 x64 一:虚拟环境配置 虚拟环境使用第三方工具virtualenv创建,打开cmd,输入virtualenv命令来检测是否已经安装,我已经装过了,所以会提示:You must

pythonWeb框架flask中使用blinker信号机制解耦业务代码解决ImportError: cannot import name &#39;app&#39;,以异步发送邮件为例

百度了大半天,不知道怎么搞,直到学习了blinker才想到解决办法,因为之前写java都是文件分开的, 所以发送邮件业务代码也放到view里面,但是异步线程需要使用app,蛋疼的是其他模块不能从app.py导入任何变量: 即: app.py是主文件,view.py是业务文件, 我需要在view中使用app中的变量,怎么办,百度了很多,没有找到方法 这里可以用信号实现,先记录一下: python3内置了blinker,可以直接使用,首先在view里定义信号: 然后在app.py里面连接需要使用的函

一线Python运维澳洲5盘口出租搭建开发带你秒懂Flask框架

大家好,下面现在开始分享flask开发,先看下本次分享的内容: 1.Flask Web框架介绍 Flask是微型web框架,框架本身十分精简,微型并不代表其功能弱,核心代码基于Werkzeug, Jinja 2 这两个库,它以插件形式的进行功能扩展,且插件易于安装与使用,并且可以自行开发扩展插件 与其他web框架类似,flask中请求(request),路由(route),响应(response)构成其完整的一个基本http流程. 2.作为入门flask框架非常易于使用 了解其基本结构后,可以迅

基于Flask框架搭建视频网站的学习日志(二)

基于Flask框架搭建视频网站的学习日志(二)2020/02/02 一.初始化 所有的Flask程序都必须创建一个程序实例,程序实例是Flask类的对象 from flask import Flask app = Flask(__name__) Flask 类的构造函数Flask()只有一个必须指定的参数,即程序主模块或包的名字.在大多数程序中,python的__name__变量就是所需的值.(Flask这个参数决定程序的根目录,以便稍后能够找到相对与程序根目录的资源文件位置)--<Flask

xming + putty 搭建远程图形化ssh访问ubuntu 14.04

putty下载: http://www.putty.org/ 一般我们远程登录linux 服务器,都是使用非加密的 telnet 或者加密的 ssh.这些登录方式有一个特点:只能登录字符界面,不能运行那些带有GUI界面的程序. 有时候为了学习或者工作的需要,我们需要远程打开有图形化界面的 linux application, 今天就给大家介绍一款软件:xming, 配合putty能够很好的完成我们的需求. 我们都知道,putty是一个用来远程登录 unix/linux 服务器的客户端,可以使用T