Python 有哪些好的 Web 架構?

來源:互聯網
上載者:User
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。
  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.