更新時(shí)間:2017年11月13日16時(shí)40分 來源:傳智播客 瀏覽次數(shù):
在各種語言平臺中,python涌現(xiàn)的web框架恐怕是最多的,是一個(gè)百花齊放的世界,各種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是走大而全的方向,它最出名的是其全自動(dòng)化的管理后臺:只需要使用起ORM,做簡單的對象定義,它就能自動(dòng)生成數(shù)據(jù)庫結(jié)構(gòu)、以及全功能的管理后臺。
Django提供的方便,也意味著Django內(nèi)置的ORM跟框架內(nèi)的其他模塊耦合程度高。
應(yīng)用程序必須使用Django內(nèi)置的ORM,否則就不能享受到框架內(nèi)提供的種種基于其ORM的便利;理論上可以切換掉其ORM模塊,但這就相當(dāng)于要把裝修完畢的房子拆除重新裝修,倒不如一開始就去毛胚房做全新的裝修。
Django的賣點(diǎn)是超高的開發(fā)效率,其性能擴(kuò)展有限;采用Django的項(xiàng)目,在流量達(dá)到一定規(guī)模后,都需要對其進(jìn)行重構(gòu),才能滿足性能的要求。
而Django的缺點(diǎn)主要源自Django堅(jiān)持自己造所有的輪子,整個(gè)系統(tǒng)相對封閉,Django最為人詬病的地方有:
系統(tǒng)緊耦合,如果你覺得Django內(nèi)置的某項(xiàng)功能不是很好,想用喜歡的第三方庫來代替是很難的,比如下面將要說的ORM、Template。要在Django里用SQLAlchemy或Mako幾乎是不可能,即使打了一些補(bǔ)丁用上了也會讓你覺得非常非常別扭。
Django自帶的ORM遠(yuǎn)不如SQLAlchemy強(qiáng)大,除了在Django這一畝三分地,SQLAlchemy是Python世界里事實(shí)上的ORM標(biāo)準(zhǔn),其它框架都支持SQLAlchemy了,唯獨(dú)Django仍然堅(jiān)持自己的那一套。Django的 開發(fā)人員對SQLAlchemy的支持也是有 過討論和嘗試的,不過最終還是放棄了,估計(jì)是代價(jià)太高且跟Django其它的模塊很難合到一塊。
Template功能比較弱,不能插入Python代碼,要寫復(fù)雜一點(diǎn)的邏輯需要另外用Python實(shí)現(xiàn)Tag或Filter。Django的模板系統(tǒng)設(shè)計(jì)十分有意思,也應(yīng)該其框架內(nèi)影響最大、爭議最大的部分。
Django模板的設(shè)計(jì)哲學(xué)是徹底的將代碼、樣式分離;asp.net提倡將代碼/模板分離,但技術(shù)上還是可以混合;而Django則是從根本上杜絕在模板中進(jìn)行編碼、處理數(shù)據(jù)的可能。
本文版權(quán)歸傳智播客人工智能+Python學(xué)院所有,歡迎轉(zhuǎn)載,轉(zhuǎn)載請注明作者出處。謝謝!
作者:傳智播客人工智能+Python學(xué)院
首發(fā):http://m.fskzgqt.cn/python/
北京校區(qū)