成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

flask框架+pygal+sqlit3搭建圖形化業(yè)務(wù)數(shù)據(jù)分析平臺-創(chuàng)新互聯(lián)

一. 前言

在齊河等地區(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)

網(wǎng)站托管運營
新安县| 垣曲县| 邯郸市| 恩平市| 玛多县| 开阳县| 弥勒县| 白水县| 新源县| 康平县| 深水埗区| 固始县| 宜宾市| 西昌市| 松溪县| 浦城县| 丰台区| 赤水市| 朔州市| 五华县| 依兰县| 天柱县| 望江县| 聂荣县| 江都市| 贵港市| 天气| 增城市| 临猗县| 全南县| 曲水县| 石林| 安阳县| 郎溪县| 嘉禾县| 荣昌县| 岑巩县| 潮安县| 西充县| 南乐县| 红安县|