7 款 Python 開源框架的優(yōu)劣總結(jié)

學(xué)習(xí)任何一門開發(fā)語言都離不開框架,一個框架就好比是一個毛坯房酪夷,只需要我們裝修就可以入住榴啸。如果沒有框架我們就只能一磚一瓦的去蓋樓房了⊥砹耄框架的種類很多鸥印,具體選擇要根據(jù)實際的業(yè)務(wù)情況。下面就簡單的介紹一下Python七款開源框架的優(yōu)劣。



Django


Django 應(yīng)該是最出名的Python框架辅甥,GAE甚至Erlang都有框架受它影響酝润。Django是走大而全的方向,它最出名的是其全自動化的管理后臺:只需要使用起ORM璃弄,做簡單的對象定義要销,它就能自動生成數(shù)據(jù)庫結(jié)構(gòu)、以及全功能的管理后臺夏块。



優(yōu)點:

開源框架疏咐,有完美的文檔支持

解決方案眾多,內(nèi)部功能支持較多

優(yōu)雅的URL脐供,完整的路由系統(tǒng)

自助式的后臺管理

缺點:

系統(tǒng)緊耦合浑塞,想用喜歡的第三方庫來代替是非常難的,即使打了一些補(bǔ)丁用上了也會覺得非常別扭政己。

Django自帶的ORM遠(yuǎn)不如SQLAlchemy強(qiáng)大酌壕。

Template功能比較弱,不能插入Python代碼歇由,要寫復(fù)雜一點的邏輯需要另外用Python實現(xiàn) Tag或Filter卵牍。



Flask


Flask是一個用Python編寫的輕量級Web應(yīng)用框架÷倜冢基于Werkzeug WSGI工具箱和Jinja2模板引擎糊昙。Flask也被稱為“microframework”,因為它使用簡單的核心谢谦,用extension增加其他功能释牺。Flask沒有默認(rèn)使用的數(shù) 據(jù)庫、窗體驗證工具回挽。



優(yōu)點:

Flask比Django更靈活没咙,用Flask來構(gòu)建應(yīng)用之前,選擇組件的時候會給開發(fā)者帶來更多的靈活性 厅各,可能有的應(yīng)用場景不適合使用一個標(biāo)準(zhǔn)的ORM(Object-Relational Mapping對象關(guān)聯(lián)映射)镜撩,或者需要與不同的工作流和模板系統(tǒng)交互。

缺點:

Flask只是一個內(nèi)核队塘,默認(rèn)依賴于兩個外部庫:Jinja2 模板引擎和 Werkzeug WSGI 工具集袁梗,其他很多功能都是以擴(kuò)展的形式進(jìn)行嵌入使用。



Scrapy


Scrapy是Python開發(fā)的一個快速憔古、高層次的屏幕抓取和web抓取框架遮怜,用于抓取web站點并從頁面中提取結(jié)構(gòu)化的數(shù)據(jù)。Scrapy用途廣泛鸿市,可以用于數(shù)據(jù)挖掘锯梁、監(jiān)測和自動化測試即碗。

優(yōu)點:

Scrapy是一個功能非常強(qiáng)大的爬蟲框架,它不僅能便捷地構(gòu)建request陌凳,還有強(qiáng)大的selector能夠方便地解析response剥懒,然而它最受歡迎的還是它的性能,既抓取和解析的速度合敦,它的downloader是多線程的初橘,request是異步調(diào)度和處理的。這兩點使它的爬取速度非常之快充岛。

另外還有內(nèi)置的logging保檐,exception,shell等模塊崔梗,為爬取工作帶來了很多便利夜只。

缺點:

scrapy是封裝起來的框架,他包含了下載器蒜魄,解析器扔亥,日志及異常處理,基于多線程权悟, twisted的方式處理砸王,對于固定單個網(wǎng)站的爬取開發(fā),有優(yōu)勢峦阁,但是對于多網(wǎng)站爬取100個網(wǎng)站,并發(fā)及分布式處理方面耘成,不夠靈活榔昔,不便調(diào)整與括展。




Tornado


Tornado是一種 Web 服務(wù)器軟件的開源版本瘪菌。Tornado 和現(xiàn)在的主流 Web 服務(wù)器框架(包括大多數(shù) Python 的框架)有著明顯的區(qū)別:它是非阻塞式服務(wù)器撒会,而且速度相當(dāng)快。


優(yōu)點:

Tornado擅長為需要嚴(yán)密控制異步網(wǎng)絡(luò)細(xì)節(jié)的應(yīng)用程序提供基礎(chǔ)架構(gòu)师妙。例如诵肛,Tornado不僅提供內(nèi)置的異步HTTP服務(wù)器,還提供異步HTTP客戶端默穴。因此怔檩,Tornado非常適合構(gòu)建應(yīng)用程序,例如Web scraper或bot蓄诽,它們并行查詢其他站點并對返回的數(shù)據(jù)進(jìn)行操作薛训。

缺點:

模板和數(shù)據(jù)庫部分有很多第三方的模塊可供選擇,這樣不利于封裝為一個功能模塊仑氛。



Web2py

web2py是一個為Python語言提供的全功能Web應(yīng)用框架乙埃,旨在敏捷快速的開發(fā)Web應(yīng)用闸英,具有快速、安全以及可移植的數(shù)據(jù)庫驅(qū)動的應(yīng)用介袜,兼容 Google App Engine甫何。



優(yōu)點:

Web2py最大的吸引力在于其內(nèi)置的開發(fā)環(huán)境。當(dāng)設(shè)置Web2py實例時遇伞,將獲得一個Web界面沛豌,實際上是一個在線Python應(yīng)用程序編輯器,可以在其中配置應(yīng)用程序的組件赃额。這通常意味著創(chuàng)建模型加派,視圖和控制器,每個都通過Python模塊或HTML模板進(jìn)行描述跳芳。

缺點:

Web2py的一個重要限制是它僅與Python 2.x兼容芍锦。首先這意味著Web2py無法使用Python 3的異步語法。如果你依賴于Python3獨有的外部庫飞盆,那么你就不走運(yùn)了娄琉。但是,正在開展使Web2py Python3兼容的工作吓歇,并且在撰寫本文時它已接近完成孽水。


Weppy


Weppy感覺就像Flask的簡約風(fēng)格和Django的完整性之間的中間標(biāo)記。雖然開發(fā)Weppy應(yīng)用程序具有Flash的直接性城看,但Weppy具有Django中的許多功能女气,如數(shù)據(jù)層和身份驗證。因此测柠,Weppy適用于從極其簡單到適度復(fù)雜的應(yīng)用程序炼鞠。


優(yōu)點:

Weppy的文檔與框架本身具有相同的風(fēng)格。它干凈轰胁,可讀谒主,并且被人類消費。除了通常的“hello world”應(yīng)用程序示例之外赃阀,它還包含一個很好的演練教程霎肯,可以讓你創(chuàng)建一個微博系統(tǒng)作為初學(xué)者項目。

缺點:

雖然Weppy有一個擴(kuò)展機(jī)制榛斯,但官方批準(zhǔn)的附加組件列表很小观游,遠(yuǎn)小于Flask的擴(kuò)展目錄。



Bottle


Bottle可以被認(rèn)為是一種迷你燒瓶肖抱,因為它比其他“微框架”更加緊湊和簡潔备典。由于其占地面積最小,Bottle非常適合包含在其他項目中或快速交付REST API等小型項目意述。

優(yōu)點:

Bottle不需要像其他框架那樣多的文檔提佣,但文檔絕不是吝嗇吮蛹。所有關(guān)鍵的東西都適合單個(盡管很長)的網(wǎng)頁。除此之外拌屏,還可以找到每個API的完整文檔潮针,如何在各種基礎(chǔ)架構(gòu)上進(jìn)行部署的示例,內(nèi)置模板語言的解釋以及一系列常見配方倚喂。

缺點:

Bottle極簡主義的一個后果是有些功能根本就不存在每篷。不支持表單驗證,包括CSRF保護(hù)等功能端圈。如果要構(gòu)建支持高度用戶交互的Web應(yīng)用程序焦读,則需要自己添加它們。

好了舱权,今天的分享就到這矗晃,如果你對Python感興趣,歡迎加入我們【python學(xué)習(xí)交流裙】宴倍,免費領(lǐng)取學(xué)習(xí)資料和源碼张症。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市鸵贬,隨后出現(xiàn)的幾起案子俗他,更是在濱河造成了極大的恐慌,老刑警劉巖阔逼,帶你破解...
    沈念sama閱讀 206,968評論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件兆衅,死亡現(xiàn)場離奇詭異,居然都是意外死亡颜价,警方通過查閱死者的電腦和手機(jī)涯保,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,601評論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來周伦,“玉大人,你說我怎么就攤上這事未荒∽ㄅ玻” “怎么了?”我有些...
    開封第一講書人閱讀 153,220評論 0 344
  • 文/不壞的土叔 我叫張陵片排,是天一觀的道長寨腔。 經(jīng)常有香客問我,道長率寡,這世上最難降的妖魔是什么迫卢? 我笑而不...
    開封第一講書人閱讀 55,416評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮冶共,結(jié)果婚禮上乾蛤,老公的妹妹穿的比我還像新娘每界。我一直安慰自己,他們只是感情好家卖,可當(dāng)我...
    茶點故事閱讀 64,425評論 5 374
  • 文/花漫 我一把揭開白布眨层。 她就那樣靜靜地躺著,像睡著了一般上荡。 火紅的嫁衣襯著肌膚如雪趴樱。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,144評論 1 285
  • 那天酪捡,我揣著相機(jī)與錄音叁征,去河邊找鬼。 笑死逛薇,一個胖子當(dāng)著我的面吹牛捺疼,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播金刁,決...
    沈念sama閱讀 38,432評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼帅涂,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了尤蛮?” 一聲冷哼從身側(cè)響起媳友,我...
    開封第一講書人閱讀 37,088評論 0 261
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎产捞,沒想到半個月后醇锚,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,586評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡坯临,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,028評論 2 325
  • 正文 我和宋清朗相戀三年焊唬,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片看靠。...
    茶點故事閱讀 38,137評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡赶促,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出挟炬,到底是詐尸還是另有隱情鸥滨,我是刑警寧澤,帶...
    沈念sama閱讀 33,783評論 4 324
  • 正文 年R本政府宣布谤祖,位于F島的核電站婿滓,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏粥喜。R本人自食惡果不足惜凸主,卻給世界環(huán)境...
    茶點故事閱讀 39,343評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望额湘。 院中可真熱鬧卿吐,春花似錦旁舰、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,333評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至谨湘,卻和暖如春绽快,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背紧阔。 一陣腳步聲響...
    開封第一講書人閱讀 31,559評論 1 262
  • 我被黑心中介騙來泰國打工坊罢, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人擅耽。 一個月前我還...
    沈念sama閱讀 45,595評論 2 355
  • 正文 我出身青樓活孩,卻偏偏與公主長得像,于是被迫代替她去往敵國和親乖仇。 傳聞我的和親對象是個殘疾皇子憾儒,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,901評論 2 345