Day01
課程目標(biāo)
- 開發(fā)環(huán)境
- BS/CS
- MVC/MTV
- Flask
課程內(nèi)容
1. 開發(fā)環(huán)境
1.1 系統(tǒng)介紹
[圖片上傳失敗...(image-81dd04-1586850469103)]
windows, macOS,linux是當(dāng)今主流三大操作系統(tǒng)壮莹,普通用戶一般是選擇windows或macOS, linux主要是占據(jù)服務(wù)器領(lǐng)域市場肥哎。
操作系統(tǒng)給人的感覺是:
(1)windows經(jīng)濟(jì)適用,檔次較低;
(2)macOS高端大氣上檔次;
(3)Linux是極客專用灵嫌,一個黑乎乎的窗口,各種花花綠綠的指令在閃爍株婴,對著鍵盤噼里啪啦一通亂敲端逼,就能竊取各種機(jī)密洗贰。
在程序員群體中,操作系統(tǒng)有以下的鄙視鏈:macOS-->linux-->windows嫉晶。 不過作為一個程序員骑疆,你很有必要學(xué)會linux,如果你的程序最終是跑在線上的Linux服務(wù)器上替废,那么你就更應(yīng)該從現(xiàn)在開始投入linux的懷抱中箍铭,早日從windows脫坑。至于macOS椎镣,在命令行上與linux絕大部分相同诈火,都是類unix的操作系統(tǒng)。簡單地說状答,macOS是一個比windows界面更加美觀冷守,同時又兼?zhèn)鋖inux強(qiáng)大命令行的操作系統(tǒng). 要說macOS的缺點刀崖,那就是貴...
[圖片上傳失敗...(image-a41c68-1586850469103)]
windows與linux的設(shè)計理念有根本性的區(qū)別:
windows:用戶不知道自己想要什么,也不明白自己在做什么教沾,更不打算為自己的行為負(fù)責(zé)蒲跨。
因為windows將所有操作都隱藏起來,只給用戶提供封裝好的功能授翻,用戶只能在操作系統(tǒng)限制的范圍內(nèi)操作或悲,如果是普通用戶,會覺得很windows很舒服堪唐,因為不需要思考巡语。只需要按照指示去操作。但對于開發(fā)人員而言淮菠,這種設(shè)計理念是無法接受的男公,一旦要做出一些超越封裝好的功能之外的事情,就會出現(xiàn)各種難以意料的情況合陵,而且很多情況下枢赔,這些問題是無解的∮抵或者只能用極其蹩腳扭曲的方式去勉強(qiáng)處理踏拜,然后瑟瑟發(fā)抖地期待著程序能正常運行。因為一旦程序崩潰低剔,你也會為之崩潰速梗。在windows下作開發(fā),那種體驗就好比在陪伴一個任性的女朋友襟齿,雖然長得清秀靚麗姻锁,但喜怒無常,她開心時猜欺,彼此相安無事位隶,她不開心時,就直接哭鬧开皿,你問她:怎么了涧黄?她也不說原因,只是一直哭副瀑。你只能試著用各種方式去哄她開心弓熏,即使這次能哄好她,并不意味著下次同樣的方法能奏效糠睡。這樣的相處方式挽鞠,很累。不是她不好,而是彼此不適合信认。即使終日相伴材义,卻依然對其一無所知。
linux:用戶知道自己想要什么嫁赏,也明白自己在做什么其掂,并且會為自己的行為負(fù)責(zé)。
linux將所有操作權(quán)都交給了用戶潦蝇,她相信用戶是理性的聰明的款熬,忠實地執(zhí)行用戶的指令,向用戶暴露所有的細(xì)節(jié)攘乒。用戶在擁有自主權(quán)的同時也擁有了破壞力贤牛,因此普通用戶根本無法駕馭,可能一個指令就把操作系統(tǒng)弄崩潰了则酝。對于開發(fā)者而言殉簸,linux的開放與自由給了我們無限的可能性,我們能看到程序是如何運行的沽讹,運行報錯也會有友好的提示般卑。根據(jù)報錯指引往往能將問題解決。與之相處爽雄,好比與一個成熟的女性相處蝠检,歷經(jīng)風(fēng)雨,已經(jīng)不再關(guān)注浮夸的外表盲链,而是關(guān)注內(nèi)在的涵養(yǎng)蝇率。剛接觸時迟杂,可能會覺得她高冷刽沾,慢慢地,會發(fā)現(xiàn)她很善解人意排拷,心情不好時她會跟你說是什么原因造成的侧漓,彼此商量如何解決這個問題,而不是無來由地崩潰监氢。與之相處布蔗,會感到很舒服,彼此坦誠浪腐,無需套路纵揍,你在想什么,我都知道议街。我在念什么泽谨,你也明白。
總結(jié):我選擇linux的原因在于自由、舒服吧雹,簡言之:爽骨杂!
1.2 環(huán)境安裝
- centos7安裝python3(https://www.cnblogs.com/felixwang2/p/9934460.html)
- centos7安裝虛擬環(huán)境(https://www.centos.bz/2018/05/centos-7-4-安裝python3及虛擬環(huán)境/)
- centos7安裝mysql (https://blog.csdn.net/WYA1993/article/details/88890883)
- centos7安裝redis (https://www.cnblogs.com/zuidongfeng/p/8032505.html)
- pycharm連接云服務(wù)器(https://blog.csdn.net/lin_danny/article/details/82185023)
2. BS/CS
2.1 概念:
CS = Client - Server = 客戶端 - 服務(wù)器。
例子: QQ雄卷,迅雷搓蚪,快播,暴風(fēng)影音丁鹉,各種網(wǎng)絡(luò)游戲等等妒潭。
BS = Browser - Server = 瀏覽器 - 服務(wù)器。
例子:所有的網(wǎng)站都是BS結(jié)構(gòu)揣钦。( 知乎 / 果殼 / 微博 / 等等等等等等 )
2.2 區(qū)別:
1皿渗、開發(fā)維護(hù)成本
cs開發(fā)維護(hù)成本高于bs。因為采用cs結(jié)構(gòu)時稿壁,對于不同的客戶端要開發(fā)不同的程序卵惦,而且軟件安裝調(diào)試和升級都需要在所有客戶機(jī)上進(jìn)行。
bs只需要將服務(wù)器上的軟件版本升級谈竿,然后從新登錄就可以了团驱。
2、客戶端負(fù)載
cs客戶端負(fù)載大空凸。cs客戶端不僅負(fù)責(zé)和用戶的交互嚎花,收集用戶信息,而且還需要通過網(wǎng)絡(luò)向服務(wù)器發(fā)出請求呀洲。
bs把事務(wù)處理邏輯部分交給了服務(wù)器紊选,客戶端只是負(fù)責(zé)顯示。
3道逗、安全性
cs安全性高兵罢。cs適用于專人使用的系統(tǒng),可以通過嚴(yán)格的管理派發(fā)軟件滓窍。
bs使用人數(shù)多卖词,不固定,安全性低吏夯。
4此蜈、作用范圍
Client/Server是建立在局域網(wǎng)的基礎(chǔ)上的。Browser/Server是建立在廣域網(wǎng)的基礎(chǔ)上的噪生。
3. MVC/MTV
[圖片上傳失敗...(image-b1e0e5-1586850469103)]
3.1 MVC概念
MVC開始是存在于桌面程序中的裆赵,M是指業(yè)務(wù)模型 model,V是指用戶界面 view跺嗽,C則是控制器 controler战授,使用MVC的目的是將M和V的實現(xiàn)代碼分離舔庶,從而使同一個程序可以使用不同的表現(xiàn)形式。比如一批統(tǒng)計數(shù)據(jù)可以分別用柱狀圖陈醒、餅圖來表示惕橙。C存在的目的則是確保M和V的同步,一旦M改變钉跷,V應(yīng)該同步更新
3.2 分層介紹
- Model(模型) -----封裝數(shù)據(jù)的交互操作 CRUD
- View(視圖) -----是用來將數(shù)據(jù)呈現(xiàn)給用戶的 頁面
- Controller(控制器) ------用來協(xié)調(diào)Model和View的關(guān)系弥鹦,并對數(shù)據(jù)進(jìn)行操作,篩選
3.3 MTV
[圖片上傳失敗...(image-6f36-1586850469103)]
MTV
也叫做MVT爷辙,本質(zhì)上就是MVC的變種
Model(模型) -----同MVC中Model
Template(模板) -----同MVC中View
Views(視圖函數(shù))-----同MVC中Controller
4. Flask框架
4.1 介紹
Flask是一個輕量級的可定制框架彬坏,使用Python語言編寫,較其他同類型框架更為靈活膝晾、輕便栓始、安全且容易上手。它可以很好地結(jié)合MVC模式進(jìn)行開發(fā)血当,開發(fā)人員分工合作幻赚,小型團(tuán)隊在短時間內(nèi)就可以完成功能豐富的中小型網(wǎng)站或Web服務(wù)的實現(xiàn)。另外臊旭,F(xiàn)lask還有很強(qiáng)的定制性落恼,用戶可以根據(jù)自己的需求來添加相應(yīng)的功能,在保持核心功能簡單的同時實現(xiàn)功能的豐富與擴(kuò)展离熏,其強(qiáng)大的插件庫可以讓用戶實現(xiàn)個性化的網(wǎng)站定制佳谦,開發(fā)出功能強(qiáng)大的網(wǎng)站。
Python最出名的框架要數(shù)Django滋戳,此外還有Flask钻蔑、Tornado等框架。雖然Flask不是最出名的框架奸鸯,但是Flask應(yīng)該算是最靈活的框架之一咪笑,這也是Flask受到廣大開發(fā)者喜愛的原因。
4.1.1 django和flask對比
重量級框架 django
為了方便業(yè)務(wù)程序的開發(fā)府喳,提供了豐富的工具及其組件
輕量級框架 flask
只提供web核心功能蒲肋,自由靈活蘑拯,高度定制钝满,F(xiàn)lask也被稱為 “microframework” ,因為它使用簡單的核心申窘,用 extension 增加其他功能
4.2 官方文檔
http://flask.pocoo.org/docs/0.12/ 英文
http://docs.jinkan.org/docs/flask/ 中文
4.3 flask流行的主要原因
1 有非常齊全的官方文檔弯蚜,上手非常方便
2 有非常好的擴(kuò)展機(jī)制和第三方擴(kuò)展環(huán)境,工作中常見的軟件都會有對應(yīng)的擴(kuò)展剃法,動手實現(xiàn)擴(kuò)展
也很容易
3 社區(qū)活躍度非常高 flask的熱度已經(jīng)超過django好幾百了
4 微型框架的形式給了開發(fā)者更大的選擇空間