教育行業(yè)A股IPO第一股(股票代碼 003032)

全國咨詢/投訴熱線:400-618-4000

全面講解Python兩大web框架

更新時間:2017年11月13日16時40分 來源:傳智播客 瀏覽次數(shù):

在各種語言平臺中,python涌現(xiàn)的web框架恐怕是最多的,是一個百花齊放的世界,各種micro-framework、framework不可勝數(shù);猜想原因應(yīng)該是在python中構(gòu)造框架十分簡單,使得輪子不斷被發(fā)明。所以在Python社區(qū)總有關(guān)于Python框架孰優(yōu)孰劣的話題。下面就給大家介紹一下python的幾大框架:

1、Django

Django 應(yīng)該是最出名的py框架,Google App Engine甚至Erlang都有框架受它影響。

Django是走大而全的方向,它最出名的是其全自動化的管理后臺:只需要使用起ORM,做簡單的對象定義,它就能自動生成數(shù)據(jù)庫結(jié)構(gòu)、以及全功能的管理后臺。

Django提供的方便,也意味著Django內(nèi)置的ORM跟框架內(nèi)的其他模塊耦合程度高。

應(yīng)用程序必須使用Django內(nèi)置的ORM,否則就不能享受到框架內(nèi)提供的種種基于其ORM的便利;理論上可以切換掉其ORM模塊,但這就相當于要把裝修完畢的房子拆除重新裝修,倒不如一開始就去毛胚房做全新的裝修。

Django的賣點是超高的開發(fā)效率,其性能擴展有限;采用Django的項目,在流量達到一定規(guī)模后,都需要對其進行重構(gòu),才能滿足性能的要求。

而Django的缺點主要源自Django堅持自己造所有的輪子,整個系統(tǒng)相對封閉,Django最為人詬病的地方有:

系統(tǒng)緊耦合,如果你覺得Django內(nèi)置的某項功能不是很好,想用喜歡的第三方庫來代替是很難的,比如下面將要說的ORM、Template。要在Django里用SQLAlchemy或Mako幾乎是不可能,即使打了一些補丁用上了也會讓你覺得非常非常別扭。

Django自帶的ORM遠不如SQLAlchemy強大,除了在Django這一畝三分地,SQLAlchemy是Python世界里事實上的ORM標準,其它框架都支持SQLAlchemy了,唯獨Django仍然堅持自己的那一套。Django的 開發(fā)人員對SQLAlchemy的支持也是有 過討論和嘗試的,不過最終還是放棄了,估計是代價太高且跟Django其它的模塊很難合到一塊。

Template功能比較弱,不能插入Python代碼,要寫復雜一點的邏輯需要另外用Python實現(xiàn)Tag或Filter。Django的模板系統(tǒng)設(shè)計十分有意思,也應(yīng)該其框架內(nèi)影響最大、爭議最大的部分。

Django模板的設(shè)計哲學是徹底的將代碼、樣式分離;asp.net提倡將代碼/模板分離,但技術(shù)上還是可以混合;而Django則是從根本上杜絕在模板中進行編碼、處理數(shù)據(jù)的可能。

  

本文版權(quán)歸傳智播客人工智能+Python學院所有,歡迎轉(zhuǎn)載,轉(zhuǎn)載請注明作者出處。謝謝!

作者:傳智播客人工智能+Python學院

首發(fā):http://metathetuscanyresort.com/python/

0 分享到:
和我們在線交談!