作者:shonenada
鏈接:https://www.zhihu.com/question/20706333/answer/24927602
來(lái)源:知乎
著作權(quán)歸作者所有,轉(zhuǎn)載請(qǐng)聯(lián)系作者獲得授權(quán)。
對(duì)初學(xué)者來(lái)說(shuō),循序漸進(jìn)是最重要的,我推薦學(xué)習(xí) Flask(Welcome | Flask (A Python Microframework))
Flask 很輕,花很少的成本就能夠開發(fā)一個(gè)簡(jiǎn)單的網(wǎng)站。非常適合初學(xué)者學(xué)習(xí)。
Flask 框架學(xué)會(huì)以后,可以考慮學(xué)習(xí)插件的使用。例如使用 WTForm + Flask-WTForm 來(lái)驗(yàn)證表單數(shù)據(jù),用 SQLAlchemy + Flask-SQLAlchemy 來(lái)對(duì)你的數(shù)據(jù)庫(kù)進(jìn)行控制。
BTW:果殼網(wǎng)基于 Flask 開發(fā)的。
另外也簡(jiǎn)單介紹下其他框架:
1. Django。如樓上所說(shuō),是一個(gè)全能型框架。目前 Django 的使用面還是很廣的,有學(xué)習(xí)的價(jià)值,但是不建議初學(xué)者學(xué)習(xí),因?yàn)橐獙W(xué)習(xí)的東西太多了,一下子難以吸收會(huì)失去興趣。當(dāng)然,Django 的目的是為了讓開發(fā)者能夠快速地開發(fā)一個(gè)網(wǎng)站,它提供了很多模塊,其中我最喜歡的就是 admin 模塊,http://your.site.com/admin就進(jìn)入了網(wǎng)站的后臺(tái)(內(nèi)置的哦~)方便地對(duì)數(shù)據(jù)進(jìn)行操作,等等。。。。因此,如果對(duì) Django 熟悉的話,papapa 一下子就寫好一個(gè)網(wǎng)站的原型了。
2. Tornado。傳說(shuō)中性能高高的框架。Tornado 是一個(gè)很好的框架,支持異步處理的功能,這是它的特點(diǎn),其他框架不支持。另外一點(diǎn)是,Tornado 的設(shè)計(jì)似乎更注重 RESTful URL。但 Tornado 提供了網(wǎng)站基本需要使用的模塊外,剩下的則需要開發(fā)者自己進(jìn)行擴(kuò)展。例如數(shù)據(jù)庫(kù)操作,雖然內(nèi)置了一個(gè) database 的模塊(后來(lái)獨(dú)立出去了,現(xiàn)在叫做 torndb,bdarnell/torndb · GitHub)但是不支持 ORM,快速開發(fā)起來(lái)還是挺吃力的。如果需要 ORM 支持的話,還需要自己寫一層將 SQLAlchemy 和 Tornado 聯(lián)系起來(lái),而且這里還有一個(gè)坑。
BTW:知乎就是基礎(chǔ) Tornado 開發(fā)的。
3. Bottle。Bottle 和 Flask 都屬于輕量級(jí)的 Web 框架。但是 Bottle 似乎落寞了。我覺(jué)得跟他的 API 設(shè)計(jì)有關(guān)系。個(gè)人認(rèn)為 Bottle 使用起來(lái)不那么順手,因此也用得少。這里不做太多介紹。
4. web.py。也是很輕的一個(gè)框架,使用不多,也不做介紹。
5. web2py。我看樓上都沒(méi)有對(duì)這個(gè)框架做介紹。這個(gè)框架是 Google 在 web.py 基礎(chǔ)上二次開發(fā)而來(lái)的,兼容 GAE 。性能據(jù)說(shuō)很高,曾經(jīng)用他來(lái)做自己的主頁(yè),感覺(jué)也還不錯(cuò)。缺點(diǎn)同樣是對(duì)擴(kuò)展支持不太好,需要自己進(jìn)行擴(kuò)展。
6. Quixote。著名的豆瓣就是基于 Quixote 開發(fā)的。跟上面幾個(gè)框架不同,Quixote 的路由會(huì)有些特別。另外 Quixote 的性能據(jù)說(shuō)也好。