一. 前言
在齊河等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強發(fā)展的系統(tǒng)性、市場前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供成都網(wǎng)站制作、成都網(wǎng)站建設(shè)、外貿(mào)營銷網(wǎng)站建設(shè) 網(wǎng)站設(shè)計制作定制設(shè)計,公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),成都品牌網(wǎng)站建設(shè),全網(wǎng)營銷推廣,成都外貿(mào)網(wǎng)站制作,齊河網(wǎng)站建設(shè)費用合理。先說下主要的框架和主要的圖形庫的特點:(個人見解)
Django:python開發(fā)的一個重量級的web框架,集成了MVC和ORM等技術(shù),設(shè)計之初是為了使開發(fā)復(fù)雜的、數(shù)據(jù)庫驅(qū)動的網(wǎng)站變得簡單,然而由于種種原因很少有企業(yè)用來開發(fā)大型網(wǎng)站,而是拿來做運維開發(fā)的很多。其注重組件的重用性和“可插拔性”。
Flask:python開發(fā)的一個輕量級的web框架,它使用簡單的核心,用 extension 增加其他功能,擴增的彈性很好,并且上手比較容易。
Echars:百度開源的一個圖像庫,界面可以做的很炫,但是主要是基于JS的,Django、flask對其的支持并不是很好,尤其是后臺用python處理數(shù)據(jù)展現(xiàn)到前臺很復(fù)雜。
Highchars:一個用純JavaScript編寫的一個圖表庫,兼容性也比較好,可以跨平臺。但是其數(shù)據(jù)需要轉(zhuǎn)成json格式才可以展現(xiàn),對于需要后臺通過python處理的數(shù)據(jù)來說也是一個不小的負擔(dān)。Django、Flask對其的支持也不是很好。
Pygal:一個 Python 開發(fā)的動態(tài) SVG 圖表庫,功能可能沒有Echars或者Highchars強大,但是勝在它是一個python開發(fā)的庫,采用的是python的原生語法,使用起來很方便,不需要多么復(fù)雜的轉(zhuǎn)換。并且flask對其的支持很好,相對來說Django對pygal的支持就差點。
數(shù)據(jù)庫選擇了sqlite3,一個輕量級的關(guān)系型數(shù)據(jù)庫。因為數(shù)據(jù)都是經(jīng)過統(tǒng)計后的數(shù)據(jù),數(shù)據(jù)量小,并且不需要特別復(fù)雜的操作。
綜上所述,經(jīng)過各種嘗試之后,確定了Flask+pygal+sqlite3的架構(gòu)。
二.環(huán)境準(zhǔn)備
1.安裝Python
1). Python版本:
3.4.3 :注意安裝過程中選擇把python添加到環(huán)境變量
2). 說明
建議選擇高版本的Python,因為后面的兩個庫需要使用python自帶的pip工具安裝,否則直接下載庫的安 裝包的話容易安 裝失敗,主要是版本的 對應(yīng)問題和依賴庫的缺少問題。
2.安裝Flask框架
在命令行模式下執(zhí)行:
pip install Flask
3.安裝圖形庫
在命令行模式下執(zhí)行:
pip install pygal
4.安裝ORM映射庫
在命令行模式下執(zhí)行:
pip install flask-sqlalchemy
5.下載sqlite3數(shù)據(jù)庫
直接在官網(wǎng)下載:http://www.sqlite.org/download.html
選擇:sqlite-tools-win32-x86-3170000.zip
解壓后包含三個可執(zhí)行文件
三 、平臺搭建過程
1.創(chuàng)建數(shù)據(jù)庫
1)在命令行模式下,切換到sqlite3目錄下,執(zhí)行下面命令:
sqlite3.exe dzj.db
2)之后進入sqlite3命令行模式:
create table appinfo( id integer key autoincrement, year varchar(32), month varchar(32), cnt varchar(32));
3)字段說明(主鍵是必須設(shè)置的)
Year 年份
Month 月份
Cnt 許可證數(shù)量
4)插入數(shù)據(jù)
2.搭建平臺過程
1)創(chuàng)建項目文件目錄(dzj)
2)在項目文件目錄(dzj)下創(chuàng)建static文件夾和templates文件夾
3)把創(chuàng)建的dzj.db數(shù)據(jù)庫復(fù)制到當(dāng)前目錄下(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() #在第一次調(diào)用時執(zhí)行就可以 appinfos = Appinfo.query.all() ##選擇年份 list_year = [] ##選擇月份 list_month = [] ##月份對應(yīng)的數(shù)字 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##許可證申請數(shù)量class Appinfo(db.Model): __tablename__='appinfo' ##注意這句,網(wǎng)上有些實例上并沒有 ##必須設(shè)置主鍵 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;">數(shù)據(jù)走勢圖分析</h3> </div> <div id="leftbar" > <h3 >數(shù)據(jù)圖總覽</h3><br/> <table> <tr> <td> <a name="appinfo" href="appinfo.html" >數(shù)量分析圖</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所在目錄,執(zhí)行:
python dzj.py
如下圖沒有報錯,即說明運行成功:
9)在瀏覽器輸入:http://127.0.0.1:5000/ 查看結(jié)果
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。
文章名稱:flask框架+pygal+sqlit3搭建圖形化業(yè)務(wù)數(shù)據(jù)分析平臺-創(chuàng)新互聯(lián)
URL分享:http://jinyejixie.com/article26/dhdgcg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站收錄、企業(yè)網(wǎng)站制作、網(wǎng)站設(shè)計、網(wǎng)站建設(shè)、網(wǎng)站營銷、建站公司
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容