2019年P(guān)ython Web五大主流框架
我們都知道風(fēng)靡一時(shí)的Python語(yǔ)言作為人工智能戰(zhàn)場(chǎng)上主要使用的槍外,還被廣泛應(yīng)用在Web開(kāi)發(fā)、游戲開(kāi)發(fā)、人工智能、云計(jì)算開(kāi)發(fā)、大數(shù)據(jù)開(kāi)發(fā)、數(shù)據(jù)分析、科學(xué)運(yùn)算、爬蟲(chóng)、自動(dòng)化運(yùn)維、自動(dòng)化測(cè)試等領(lǐng)域,其實(shí)Python在各領(lǐng)域的應(yīng)用最方便的就是使用框架,可以讓程序員以更少的代碼實(shí)現(xiàn)自定義功能,還可以將更多的精力集中在業(yè)務(wù)邏輯上,更加的輕松便利!那么2019年P(guān)ython web五大主流框架,你知道嗎?
序言:
現(xiàn)在很多學(xué)習(xí)Python的人員更多的是趨向于爬蟲(chóng)、人工智能、數(shù)據(jù)分析等,Python web開(kāi)發(fā)確實(shí)這些方向工作崗位最多的一個(gè)!曾經(jīng)有一位老前輩和說(shuō)到“Python web開(kāi)發(fā)堪稱(chēng)全能”。
他說(shuō):
如果你會(huì)Python web開(kāi)發(fā),那么
你在制造行業(yè),就是做ERP系統(tǒng)開(kāi)發(fā);
你在電商行業(yè),就是做電商平臺(tái);
你在游戲行業(yè),就是做游戲后臺(tái)開(kāi)發(fā);
你在金融行業(yè),就是做量化交易;
你在.......行業(yè),就是做.................................
既然Python web這么厲害,那么我們了解2018Python主流的五大框架也就顯得很有必要了:
1.Django
Django是一個(gè)開(kāi)源的Web應(yīng)用框架,由Python寫(xiě)成,支持許多數(shù)據(jù)庫(kù)引擎,可以讓W(xué)eb開(kāi)發(fā)變得迅速和可擴(kuò)展,并會(huì)不斷的版本更新以匹配Python***版本,如果是新手程序員,可以從這個(gè)框架入手。
2.Flask
Flask是一個(gè)輕量級(jí)的Web應(yīng)用框架, 使用Python編寫(xiě)?;?WerkzeugWSGI工具箱和 Jinja2模板引擎。使用 BSD 授權(quán)。
Flask也被稱(chēng)為 “microframework” ,因?yàn)樗褂煤?jiǎn)單的核心,用 extension 增加其他功能。Flask沒(méi)有默認(rèn)使用的數(shù)據(jù)庫(kù)、窗體驗(yàn)證工具。然而,F(xiàn)lask保留了擴(kuò)增的彈性,可以用Flask-extension加入這些功 能:ORM、窗體驗(yàn)證工具、文件上傳、各種開(kāi)放式身份驗(yàn)證技術(shù)。
3.Web2py

Web2py是一個(gè)用Python語(yǔ)言編寫(xiě)的免費(fèi)的開(kāi)源Web框架,旨在敏捷快速的開(kāi)發(fā)Web應(yīng)用,具有快速、可擴(kuò)展、安全以及可移植的數(shù)據(jù)庫(kù)驅(qū)動(dòng)的應(yīng)用,遵循LGPLv3開(kāi)源協(xié)議。
Web2py提供一站式的解決方案,整個(gè)開(kāi)發(fā)過(guò)程都可以在瀏覽器上進(jìn)行,提供了Web版的在線開(kāi)發(fā),HTML模版編寫(xiě),靜態(tài)文件的上傳,數(shù)據(jù)庫(kù)的編寫(xiě)的功能。其它的還有日志功能,以及一個(gè)自動(dòng)化的admin接口。
4.Tornado
Tornado即是一個(gè)Web server(對(duì)此本文不作詳述),同時(shí)又是一個(gè)類(lèi)web.py的micro-framework,作為框架Tornado的思想主要來(lái)源于Web.py,大家在Web.py的網(wǎng)站首頁(yè)也可以看到Tornado的大佬Bret Taylor的這么一段話(他這里說(shuō)的FriendFeed用的框架跟Tornado可以看作是一個(gè)東西):
“[web.py inspired the] Web framework we use at FriendFeed [and] the webapp framework that ships with App Engine…”
因?yàn)橛羞@層關(guān)系,后面不再單獨(dú)討論Tornado。
5.CherryPy

CherryPy是一種用于Python的、簡(jiǎn)單而非常有用的Web框架,其主要作用是以盡可能少的操作將Web服務(wù)器與Python代碼連接,其功能包括內(nèi)置的分析功能、靈活的插件系統(tǒng)以及一次運(yùn)行多個(gè)HTTP服務(wù)器的功能,可與運(yùn)行在***版本的Python、Jython、Android上。

***關(guān)于框架選擇的誤區(qū)
在框架的選擇問(wèn)題上,許多人很容易就陷入了下面兩個(gè)誤區(qū)中而不自知:哪個(gè)框架***——世上沒(méi)有***的框架,只有最適合你自己、最適合你的團(tuán)隊(duì)的框架。編程語(yǔ)言選擇也是一個(gè)道理,你的團(tuán)隊(duì)Python最熟就用Python好了,如果最熟悉的是Ruby那就用Ruby好了,編程語(yǔ)言、框架都只是工具,能多、快、好、省的干完活就是好東西。
過(guò)分關(guān)注性能——其實(shí)大部分人是沒(méi)必要太關(guān)心框架的性能的,因?yàn)槟汩_(kāi)發(fā)的網(wǎng)站根本就是個(gè)小站,能上1萬(wàn)的IP的網(wǎng)站已經(jīng)不多了,上10萬(wàn)的更是很少很少。在沒(méi)有一定的訪問(wèn)量前談性能其實(shí)是沒(méi)有多大意義的,因?yàn)槟愕腃PU和內(nèi)存一直就閑著呢。