免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
Flask搭建圖形化業(yè)務數據分析平臺

作者:lc19861217

原文:http://www.cnblogs.com/lc1217/p/6514049.html

全文約 5893 字,讀完可能需要 9 分鐘。

一. 前言

先說下主要的框架和主要的圖形庫的特點:(個人見解)

Django:python開發(fā)的一個重量級的web框架,集成了MVC和ORM等技術,設計之初是為了使開發(fā)復雜的、數據庫驅動的網站變得簡單,然而由于種種原因很少有企業(yè)用來開發(fā)大型網站,而是拿來做運維開發(fā)的很多。其注重組件的重用性和'可插拔性'。

Flask:python開發(fā)的一個輕量級的web框架,它使用簡單的核心,用 extension 增加其他功能,擴增的彈性很好,并且上手比較容易。

Echars:百度開源的一個圖像庫,界面可以做的很炫,但是主要是基于JS的,Django、flask對其的支持并不是很好,尤其是后臺用python處理數據展現到前臺很復雜。

Highchars:一個用純JavaScript編寫的一個圖表庫,兼容性也比較好,可以跨平臺。但是其數據需要轉成json格式才可以展現,對于需要后臺通過python處理的數據來說也是一個不小的負擔。Django、Flask對其的支持也不是很好。

Pygal:一個 Python 開發(fā)的動態(tài) SVG 圖表庫,功能可能沒有Echars或者Highchars強大,但是勝在它是一個python開發(fā)的庫,采用的是python的原生語法,使用起來很方便,不需要多么復雜的轉換。并且flask對其的支持很好,相對來說Django對pygal的支持就差點。

數據庫選擇了sqlite3,一個輕量級的關系型數據庫。因為數據都是經過統(tǒng)計后的數據,數據量小,并且不需要特別復雜的操作。

綜上所述,經過各種嘗試之后,確定了Flask+pygal+sqlite3的架構。

二.環(huán)境準備

1.安裝Python

1). Python版本:

3.4.3 :注意安裝過程中選擇把python添加到環(huán)境變量

2). 說明

建議選擇高版本的Python,因為后面的兩個庫需要使用python自帶的pip工具安裝,否則直接下載庫的安 裝包的話容易安 裝失敗,主要是版本的 對應問題和依賴庫的缺少問題。

2.安裝Flask框架

在命令行模式下執(zhí)行:

pip install Flask

3.安裝圖形庫

在命令行模式下執(zhí)行:

pip install pygal

4.安裝ORM映射庫

在命令行模式下執(zhí)行:

pip install flask-sqlalchemy

5.下載sqlite3數據庫

直接在官網下載:http://www.sqlite.org/download.html

選擇:sqlite-tools-win32-x86-3170000.zip

解壓后包含三個可執(zhí)行文件

三 、平臺搭建過程

1.創(chuàng)建數據庫

1)在命令行模式下,切換到sqlite3目錄下,執(zhí)行下面命令:

sqlite3.exe dzj.db

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

  1. create table appinfo(

  2.    id integer key autoincrement,

  3.    year varchar(32),

  4.    month varchar(32),

  5.    cnt   varchar(32));

3)字段說明(主鍵是必須設置的)

Year 年份

Month 月份

Cnt 許可證數量

4)插入數據

2.搭建平臺過程

1)創(chuàng)建項目文件目錄(dzj)

2)在項目文件目錄(dzj)下創(chuàng)建static文件夾和templates文件夾

3)把創(chuàng)建的dzj.db數據庫復制到當前目錄下(dzj目錄)

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

  1. from flask import Flask, render_template

  2. import pygal

  3. from dbconnect import db

  4. from models import Appinfo

  5. app = Flask(__name__)

  6. @app.route('/')

  7. def APPLYTBLINFO():

  8.    db.create_all() http://www.cnblogs.com/在第一次調用時執(zhí)行就可以

  9.    appinfos = Appinfo.query.all()

  10.    http://www.cnblogs.com/http://www.cnblogs.com/選擇年份

  11.    list_year = []

  12.    http://www.cnblogs.com/http://www.cnblogs.com/選擇月份

  13.    list_month = []

  14.    http://www.cnblogs.com/http://www.cnblogs.com/月份對應的數字

  15.    map_cnt = {}

  16.    for info in appinfos:

  17.        if info.year not in list_year:

  18.            list_year.append(info.year)

  19.            map_cnt[info.year] = [int(info.cnt)]

  20.        else:

  21.            map_cnt[info.year].append(int(info.cnt))

  22.        if info.month not in list_month:

  23.            list_month.append(info.month)

  24.    line_chart = pygal.Line()

  25.    line_chart.title = '信息'

  26.    line_chart.x_labels = map(str, list_month)

  27.    for year in list_year :

  28.        line_chart.add(str(year)+'年', map_cnt[year])

  29.    return render_template('index.html', chart=line_chart)

  30.    if __name__ == '__main__':

  31.    app.run(debug=True)

5)在項目文件目錄(dzj)下添加dbconnect.py文件,代碼如下:

  1. from flask import Flask

  2. from flask_sqlalchemy import SQLAlchemy

  3. import os

  4. app = Flask(__name__)

  5. dbpath = app.root_path.replace('\\', '/')

  6. http://www.cnblogs.com/注意斜線的方向

  7. app.config['SQLALCHEMY_DATABASE_URI'] = r'sqlite:///'+dbpath+'/dzj.db'

  8. http://www.cnblogs.com/app.config['SQLALCHEMY_DATABASE_URI'] = r'sqlite:///D:/Python/dzj/dzj.db'

  9. app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = True

  10. http://www.cnblogs.com/print(app.config['SQLALCHEMY_DATABASE_URI'])

  11. db = SQLAlchemy(app)

6)在項目文件目錄(dzj)下添加models.py 文件,代碼如下:

  1. from dbconnect import db

  2. http://www.cnblogs.com/http://www.cnblogs.com/許可證申請數量

  3. class Appinfo(db.Model):

  4.    __tablename__='appinfo' http://www.cnblogs.com/http://www.cnblogs.com/注意這句,網上有些實例上并沒有

  5.    http://www.cnblogs.com/http://www.cnblogs.com/必須設置主鍵

  6.    id = db.Column(db.Integer, primary_key=True)

  7.    year = db.Column(db.String(20))

  8.    month = db.Column(db.String(20))

  9.    cnt = db.Column(db.String(20))

  10.    def __init__(self, year, month, cnt):

  11.        self.year = year

  12.        self.month = month

  13.        self.cnt = cnt

  14.    def __str__(self):

  15.        return self.year+':'+self.month+':'+self.cnt

  16.    def __repr__(self):

  17.        return self.year+':'+self.month+':'+self.cnt

  18.    def save(self):

  19.        db.session.add(self)

  20.        db.session.commit()

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

  1. <> style='width: 1000px;margin: auto'>

  2. <>  id='container'>

  3.    <> id='header' style='background: burlywood;height: 50px;'>

  4.        <> style='font-size: 30px;  position: absolute; margin-top: 10px;margin-left: 300px;

  5.        text-align:center;'>數據走勢圖分析

  6.    

  •    <> id='leftbar' style='width: 200px;height: 600px;background: cadetblue;float: left'>

  •        <> style='margin-left: 20px'>數據圖總覽

  •        

  •            

  •                

  •                   <> name='appinfo' href='appinfo.html' style='margin-left: 20px;'>數量分析圖

  •                

  •            

  •        

  •    

  •    <> id='chart' style='width: 800px;float: left'>

  •       <> type='image/svg+xml' src= {{ chart.render_data_uri()|safe }} />

  •    

  • 8)在命令行下切換到dzj所在目錄,執(zhí)行:

    python dzj.py

    如下圖沒有報錯,即說明運行成功:

    9)在瀏覽器輸入:http://127.0.0.1:5000/ 查看結果


    題圖:pexels,CC0 授權。

    本站僅提供存儲服務,所有內容均由用戶發(fā)布,如發(fā)現有害或侵權內容,請點擊舉報。
    打開APP,閱讀全文并永久保存 查看更多類似文章
    猜你喜歡
    類似文章
    春江花月夜(配樂詩朗誦)
    Flask極限挑戰(zhàn)——開發(fā)出全文搜索引擎
    Airbnb開源 快速搭建企業(yè)級BI數據平臺
    常用的DIV CSS網站布局的基本框架結構-完整版
    高性能WEB開發(fā)之flush讓頁面分塊逐步呈現
    [轉載]xe5 android 手機上使用sqlite
    更多類似文章 >>
    生活服務
    分享 收藏 導長圖 關注 下載文章
    綁定賬號成功
    后續(xù)可登錄賬號暢享VIP特權!
    如果VIP功能使用有故障,
    可點擊這里聯(lián)系客服!

    聯(lián)系客服