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

全國(guó)咨詢(xún)/投訴熱線:400-618-4000

全面講解Python兩大web框架

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

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

1、Django

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

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

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

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

Django的賣(mài)點(diǎn)是超高的開(kāi)發(fā)效率,其性能擴(kuò)展有限;采用Django的項(xiàng)目,在流量達(dá)到一定規(guī)模后,都需要對(duì)其進(jìn)行重構(gòu),才能滿(mǎn)足性能的要求。

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

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

Django自帶的ORM遠(yuǎn)不如SQLAlchemy強(qiáng)大,除了在Django這一畝三分地,SQLAlchemy是Python世界里事實(shí)上的ORM標(biāo)準(zhǔn),其它框架都支持SQLAlchemy了,唯獨(dú)Django仍然堅(jiān)持自己的那一套。Django的 開(kāi)發(fā)人員對(duì)SQLAlchemy的支持也是有 過(guò)討論和嘗試的,不過(guò)最終還是放棄了,估計(jì)是代價(jià)太高且跟Django其它的模塊很難合到一塊。

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

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

  

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

作者:傳智播客人工智能+Python學(xué)院

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

0 分享到:
和我們?cè)诰€交談!