pylons 如何?
回複內容:
對初學者來說,循序漸進是最重要的,我推薦學習 Flask(Welcome | Flask (A Python Microframework)
)
Flask 很輕,花很少的成本就能夠開發一個簡單的網站。非常適合初學者學習。
Flask 架構學會以後,可以考慮學習外掛程式的使用。例如使用 WTForm + Flask-WTForm 來驗證表單資料,用 SQLAlchemy + Flask-SQLAlchemy 來對你的資料庫進行控制。
BTW:果殼網基於 Flask 開發的。
另外也簡單介紹下其他架構:
1. Django。如樓上所說,是一個全能型架構。目前 Django 的使用面還是很廣的,有學習的價值,但是不建議初學者學習,因為要學習的東西太多了,一下子難以吸收會失去興趣。當然,Django 的目的是為了讓開發人員能夠
快速 地開發一個網站,它提供了很多模組,其中我最喜歡的就是 admin 模組,http://your.site.com/admin
就進入了網站的後台(內建的哦~)方便地對資料進行操作,等等。。。。因此,如果對 Django 熟悉的話,papapa 一下子就寫好一個網站的原型了。
2. Tornado。傳說中效能高高的架構。Tornado 是一個很好的架構,支援非同步處理的功能,這是它的特點,其他架構不支援。另外一點是,Tornado 的設計似乎更注重 RESTful URL。但 Tornado 提供了網站基本需要使用的模組外,剩下的則需要開發人員自己進行擴充。例如資料庫操作,雖然內建了一個 database 的模組(後來獨立出去了,現在叫做 torndb,bdarnell/torndb · GitHub
)但是不支援 ORM,快速開發起來還是挺吃力的。如果需要 ORM 支援的話,還需要自己寫一層將 SQLAlchemy 和 Tornado 聯絡起來,而且這裡還有一個坑。
BTW:知乎就是基礎 Tornado 開發的。
3. Bottle。Bottle 和 Flask 都屬於輕量級的 Web 架構。但是 Bottle 似乎落寞了。我覺得跟他的 API 設計有關係。個人認為 Bottle 使用起來不那麼順手,因此也用得少。這裡不做太多介紹。
4. web.py。也是很輕的一個架構,使用不多,也不做介紹。
5. web2py。我看樓上都沒有對這個架構做介紹。這個架構是 Google 在 web.py 基礎上二次開發而來的,相容 GAE 。效能據說很高,曾經用他來做自己的首頁,感覺也還不錯。缺點同樣是對擴充支援不太好,需要自己進行擴充。
6. Quixote。著名的
豆瓣 就是基於 Quixote 開發的。跟上面幾個架構不同,Quixote 的路由會有些特別。另外 Quixote 的效能據說也好。來,自己動手寫一個:不超過1000行代碼
http://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb493182103fac9270762a000/0014023080708565bc89d6ab886481fb25a16cdc3b773f0000
再貼上源碼,1500行,一半都是注釋:
https://github.com/michaelliao/awesome-python-webapp/blob/release/www/transwarp/web.py
Tornado
Tornado Web Server
Tornado
is an open source version of the scalable, non-blocking web server and tools that power FriendFeed
. The FriendFeed application is written using a web framework that looks a bit like web.py
or Google's webapp
, but with additional tools and optimizations to take advantage of the underlying non-blocking infrastructure.
用tornado的一個很明顯的好處是,有些輪子自己造才能學到東西。
中文官網鏡像 Tornado Web伺服器
另一個好處是因為是facebook開源的,加上自身優秀的代碼品質和傲嬌的效率表現,目前非常火,誕生了一大批的優秀產品,如你在它上面提出這個問題的 知乎, quora
,INK361
,42區 . 遇見
等等。我覺得新手還是不要用Django這樣龐大的東西,建議Flask,很多東西自己實現。有一定的認識之後,再用Django,會覺得很順心。
越是大的項目,越會覺得架構能協助的太少,更多的是定製.Django修改起來相當麻煩.但微架構你從一開始就差不多是在定製了.推薦uliweb:
文檔: Uliweb-Doc
郵件清單: http://groups.google.com/group/uliweb
QQ討論群組: 162487035
有一些針對初學者的教程,QQ群裡也有不少初學者在討論,在郵件清單和QQ群中都可以和作者討論問題如果是學習,可以自己手擼一個架構
python類比Django架構
Day 5 - 編寫Web架構
Bottle: Python Web Framework
照著抄,然後改。反正Python造輪子簡單,擼唄,擼多了就好,換哪個架構都不怕。我學python web開發,是django -> web.py -> tornado -> bottle -> flask,現在團隊內部使用的是基於flask的二次開發架構。
最初學django,因為隨手搜一下python web開發架構,滿屏都是講django的,就學學咯。
後來覺得,太tmd重了。逆反心理作用下,就去看web.py了。
web.py其實挺不錯的,可惜驚聞作者仙逝無人維護,心裡一涼。剛好又聽說tornado效能好、像web.py,學學也不壞。其實一直都喜歡這種非阻塞IO的高效能
後來接觸到gevent,知道非阻塞IO還有更優雅的實現方式。而tornado確實不滿足我內心對“簡潔”的苛求,於是又一頭栽進bottle這個簡單到只有一個檔案的庫中,相見恨晚
後來朋友推薦flask,原因是極像bottle但對大項目組織支援更好,而且外掛程式更多、生態更好。抱著試試的心態學起來。然後就用到現在了bottle 也不錯,短小精悍啊pyramid用了,還是比較自由的。 我的推薦是輕量級的 Flask,全能型的 Django,重型的 Pyramid。
學習目的的話,推薦從 Django 入手,瞭解後轉 Flask。