千家信息网

flask框架+pygal+sqlit3搭建图形化业务数据分析平台

发表于:2024-11-11 作者:千家信息网编辑
千家信息网最后更新 2024年11月11日,一. 前言先说下主要的框架和主要的图形库的特点:(个人见解)Django:python开发的一个重量级的web框架,集成了MVC和ORM等技术,设计之初是为了使开发复杂的、数据库驱动的网站变得简单,然
千家信息网最后更新 2024年11月11日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 Appinfoapp = 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 osapp = 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,代码如下:

数据图总览


数量分析图

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

python dzj.py

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

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

数据 文件 目录 命令 开发 数据库 项目 选择 模式 框架 复杂 代码 支持 数量 月份 版本 过程 图形 平台 分析 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 上海猴游互联网科技有限公司 工信部国家网络安全 广东青年网络安全ppt 数据库过滤相同的数据 网络安全的十大特性 盘龙区方便软件开发市场报价 勘界报告最新数据库 互联网科技发明视频 推荐一个魔兽世界怀旧度服务器 2019年承载网络技术支撑 数据库用户密码是明文储存嘛 无锡市服务器托管 软件开发公司经济效益 外部数据库打开两个表 arm服务器硬件构架 达梦数据库 上市 网络技术三级ipv6 安卓软件开发手电筒 计算机网络技术毕业能考二建吗 以下哪个数据库不属于全文数据库 数据库同步技术的研究与实现 公安部网络安全与信息化部 主机服务器权限管理系统 解读公共互联网网络安全突发事件 长春摩联互联网科技有限公司 数据库回滚时可以查询吗 大连软件开发有哪些技术 服务器安上就能用吗 pve服务器有什么用 中国近代报刊数据库密码
0