利用django框架,手把手教你搭建數(shù)據(jù)可視化系統(tǒng)(一)

我們想沒想過抽碌,作為數(shù)據(jù)分析的小白悍赢,我們有朝一日可以獨立創(chuàng)建自己的數(shù)據(jù)可視化系統(tǒng)决瞳?跟jacky一起,來一次數(shù)據(jù)的逆襲左权!

下面這些系統(tǒng)皮胡,用Python的Django框架,都可以模擬完成:

星圖.png
百度統(tǒng)計.png
艾瑞.png

下面就開始我的分享:

使用django的MTV模型搭建網(wǎng)站

基礎(chǔ)鋪墊—MTV模型

st=>start: Request
e=>end: Response
op=>operation: 服務(wù)器(Djangoweb)
st->op->e

首先赏迟,要搞清楚我們?nèi)ピL問服務(wù)器屡贺,服務(wù)器返回信息的行為。

1)Request向服務(wù)器(Djangoweb)發(fā)起請求

  • 點擊頁面锌杀,或查看網(wǎng)頁信息甩栈,都是這個過程

2)服務(wù)器回應(yīng)-Response

  • 服務(wù)器拋出的可能是某個頁面,也可能是圖片糕再,或是一組動態(tài)的數(shù)據(jù)

上面Request發(fā)出請求命令給服務(wù)器量没,服務(wù)器接受指令回應(yīng)這個行為,這個一個比較粗略的描述突想。那么殴蹄,如果一個網(wǎng)站的后端是用Djangoweb搭建的,那么它們之間是如何運作的猾担。那么袭灯,我們就要來剖析Djangoweb服務(wù)器內(nèi)部更細致的結(jié)構(gòu)是怎樣的。

Djangoweb內(nèi)部結(jié)構(gòu)

Views層

  • 作用

  • 調(diào)配我們要加載網(wǎng)頁的數(shù)據(jù)

  • 把我們要加載的對應(yīng)的網(wǎng)站找出來

Models層

是一個托管數(shù)據(jù)的層級绑嘹,Models是用python的語言稽荧,python的方面去進行數(shù)據(jù)庫中的增、刪圾叼、改蛤克、查、存儲等操作

  • 作用

  • Views首先會在Models中查找我們要的數(shù)據(jù)夷蚊;

  • 接下來,Views會把從Models層中找到的數(shù)據(jù)髓介,裝載在Templates層中

Templates層

Templates層就是模版層惕鼓,就是我們看到網(wǎng)頁的樣貌。

MTV模型

  • M-數(shù)據(jù)庫
  • T-模版
  • V-控制層

更細致的過程

服務(wù)器接受一個請求唐础,這個請求對應(yīng)一個URL,找到特定的views(因為有不同的頁面箱歧,所有會有不同的views),這個特定的views會從models調(diào)取特定的數(shù)據(jù)一膨,這個數(shù)據(jù)會裝載在templates呀邢,然后呈現(xiàn)給我們?yōu)g覽網(wǎng)頁時,有數(shù)據(jù)的網(wǎng)頁豹绪。

有些網(wǎng)頁的數(shù)據(jù)是不斷變化的价淌,這個就相當于不同的templates加載不同的數(shù)據(jù)。

具體實操

(一) Django項目的新建

第1步:打開IDE,新建New Project

這里寫圖片描述

第2步:在新建項目下蝉衣,創(chuàng)建django

@數(shù)據(jù)分析-jacky

第3步:對新建的django進行一些調(diào)配和設(shè)置
考慮到我們可能要新建多個網(wǎng)站括尸,考慮到每個網(wǎng)站的修改變動不互相影響,我們采用創(chuàng)建虛擬環(huán)境的方法病毡,當然濒翻,有些初學(xué)者系統(tǒng)創(chuàng)建虛擬環(huán)境會失敗,這里作為學(xué)習(xí)啦膜,不創(chuàng)建虛擬環(huán)境有送,對后面的學(xué)習(xí)也是沒有影響的。

@數(shù)據(jù)分析-jacky
@數(shù)據(jù)分析-jacky

起一個項目的名稱并創(chuàng)建

@數(shù)據(jù)分析-jacky

這樣Django的網(wǎng)站就創(chuàng)建成功了

@數(shù)據(jù)分析-jacky

第4步:使用manage.py文件去創(chuàng)建我們可視化的網(wǎng)站
為什么用manage.py去創(chuàng)建呢僧家?我們通過文件代碼可以看出雀摘,manage幫我們搞定了很多的環(huán)境變量,對于包的導(dǎo)入和查找來說啸臀,Django都是一個很復(fù)雜的環(huán)境届宠,所以用manage文件創(chuàng)建可以保證文件都在Django目錄下。

@數(shù)據(jù)分析-jacky

如果目錄中有Django的文件(如下圖所示)乘粒,那么就說明我們創(chuàng)建成功了

@數(shù)據(jù)分析-jacky
  • 這里需要提醒的是豌注,有的朋友對manage執(zhí)行startapp命令時可能會出線如下錯誤提示:
@數(shù)據(jù)分析-jacky
  • 解決方案,大家可以參照stack灯萍,在自己的電腦的終端輸入相應(yīng)代碼就可以解決轧铁。
@數(shù)據(jù)分析-jacky
@數(shù)據(jù)分析-jacky

第5步:使用settings文件中添加網(wǎng)站

  • settings文件中包含django站點的路徑和安全設(shè)施
@數(shù)據(jù)分析-jacky

現(xiàn)在回顧一下開頭的MTV模型,首先我們向服務(wù)器發(fā)起請求(Request到url)旦棉,接下來url找到了對應(yīng)的調(diào)配層views齿风,最后views從templates和models中找想要的數(shù)據(jù)和網(wǎng)頁,這就是django創(chuàng)建網(wǎng)頁的整體邏輯绑洛。但是救斑,我們具體操作django時,這個過程實際上是反過來的:我們先對templates網(wǎng)頁進行設(shè)計真屯,接著反過來添加調(diào)配它的視圖函數(shù)views脸候,最后在urls文件下給它分配一個鏈接。我們先分享創(chuàng)建一個靜態(tài)的網(wǎng)頁绑蔫,這是models層是用不上的(models后面再跟大家分享)运沦。

第6步:在templates層中添加可視化的模版

@數(shù)據(jù)分析-jacky
  • 點擊右鍵創(chuàng)建htm文件,將html文件命名為index配深,這就是我們要創(chuàng)建訪問網(wǎng)頁的首頁携添。
@數(shù)據(jù)分析-jacky

第7步:在views層中調(diào)用templates的視圖函數(shù)

@數(shù)據(jù)分析-jacky
  • 上面,我們只是創(chuàng)造了一個函數(shù)index篓叶,一個網(wǎng)頁是否能出現(xiàn)在網(wǎng)站上烈掠,網(wǎng)址是衡量它唯一的途徑羞秤, 接下來,我們就要在urls中給我們的網(wǎng)站分配一個網(wǎng)址

第8步:在urls中分配網(wǎng)址

@數(shù)據(jù)分析-jacky

第9步:運行 Django項目向叉,創(chuàng)建網(wǎng)站

@數(shù)據(jù)分析-jacky

這樣锥腻,我們輸入網(wǎng)址:http://127.0.0.1:8000/index ,我們的數(shù)據(jù)可視化網(wǎng)站就初步搭建完成了母谎,我們看看效果:

數(shù)據(jù)分析-jacky

這里要特別注意的是:由于django版本不同瘦黑,有些朋友在運行django的時候,會報錯:

WARNINGS: ?: (1_8.W001) The standalone TEMPLATE_* settings were
deprecated in Django 1.8 and the TEMPLATES dictionary takes
precedence. You must put the values of the following settings into
your default TEMPLATES dict: TEMPLATE_DIRS.

解決方案為:

@數(shù)據(jù)分析-jacky

以上9步奇唤,我們就初步的搭建了一個數(shù)據(jù)可視化的網(wǎng)站幸斥,請繼續(xù)關(guān)注本系列的第二次分享... ...

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市咬扇,隨后出現(xiàn)的幾起案子甲葬,更是在濱河造成了極大的恐慌,老刑警劉巖懈贺,帶你破解...
    沈念sama閱讀 216,496評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件经窖,死亡現(xiàn)場離奇詭異,居然都是意外死亡梭灿,警方通過查閱死者的電腦和手機画侣,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,407評論 3 392
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來堡妒,“玉大人配乱,你說我怎么就攤上這事∑こ伲” “怎么了搬泥?”我有些...
    開封第一講書人閱讀 162,632評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長伏尼。 經(jīng)常有香客問我忿檩,道長,這世上最難降的妖魔是什么爆阶? 我笑而不...
    開封第一講書人閱讀 58,180評論 1 292
  • 正文 為了忘掉前任休溶,我火速辦了婚禮,結(jié)果婚禮上扰她,老公的妹妹穿的比我還像新娘。我一直安慰自己芭碍,他們只是感情好徒役,可當我...
    茶點故事閱讀 67,198評論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著窖壕,像睡著了一般忧勿。 火紅的嫁衣襯著肌膚如雪杉女。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,165評論 1 299
  • 那天鸳吸,我揣著相機與錄音熏挎,去河邊找鬼。 笑死晌砾,一個胖子當著我的面吹牛坎拐,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播养匈,決...
    沈念sama閱讀 40,052評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼哼勇,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了呕乎?” 一聲冷哼從身側(cè)響起积担,我...
    開封第一講書人閱讀 38,910評論 0 274
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎猬仁,沒想到半個月后帝璧,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,324評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡湿刽,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,542評論 2 332
  • 正文 我和宋清朗相戀三年的烁,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片叭爱。...
    茶點故事閱讀 39,711評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡撮躁,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出买雾,到底是詐尸還是另有隱情把曼,我是刑警寧澤,帶...
    沈念sama閱讀 35,424評論 5 343
  • 正文 年R本政府宣布漓穿,位于F島的核電站嗤军,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏晃危。R本人自食惡果不足惜叙赚,卻給世界環(huán)境...
    茶點故事閱讀 41,017評論 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望僚饭。 院中可真熱鬧震叮,春花似錦、人聲如沸鳍鸵。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,668評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽偿乖。三九已至击罪,卻和暖如春哲嘲,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背媳禁。 一陣腳步聲響...
    開封第一講書人閱讀 32,823評論 1 269
  • 我被黑心中介騙來泰國打工眠副, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人竣稽。 一個月前我還...
    沈念sama閱讀 47,722評論 2 368
  • 正文 我出身青樓囱怕,卻偏偏與公主長得像,于是被迫代替她去往敵國和親丧枪。 傳聞我的和親對象是個殘疾皇子光涂,可洞房花燭夜當晚...
    茶點故事閱讀 44,611評論 2 353

推薦閱讀更多精彩內(nèi)容