在 Python 的 Web FrameWork 真的是多到,令人嘆為觀止,不過應該還跟 Java 沒得比,這是好處也是壞處,好處是選擇多了,壞處是力量分散了,還有很多人還真不知道如何選,像是學 Java 的,FrameWork 可能會有很多人看到吐血,太多的文件,以及規範了,這就是為何? Ruby on Rail 會如此成功的原因之一,因為在 Ruby 上,這是一條最大的路,大多數的人也不需要作選擇,沒有的功能,就是加強她,或是整合進去,不像,其他的解決方案,反而有太多的選擇,而分散了力量,徒增加太多的開發時間,TurboGears 的主要開發者 Kevin Dangoor ,希望的是,他可以整合一個的最好的開發方法,不必再讓別人煩惱要選那一個,他說了兩點 : “best-of-breed”,“one way to do it”,但也有提到,雖然希望是這樣,不過保有可以用不同方法的可能,在最新的 mail list 裡甚至有討論到和 Subway 合併在一起的可能性,不是以後有免費的潛艇堡可以吃,這是另一個 Python 的 Web Framework。

實際用的感想,我只能說,把所有相當成熟的模組,合在一起用的感覺真好,在不同的地方也都用的上,看一次 API 後,都可以受用,像是 SQLObject 也有整合在一個 Zope 3 的一個專案中, sqlos 的產品當中,CherryPy 更是成熟的 Web Framework ,也可以用多種的範本系統,彈性也相當大,只是 TurboGears 只加入 Kid ,有用過 Zope zpt 的朋友應該會感覺很熟悉,應該馬上就可以上手,不過要換,也不是難事,畢竟基本的架構是用 cherrypy ,他支援的 template 就很多了,Cheetah,或是 ClearSilver 都有,不過在 TurboGears 要在自己掛進來,也要自己維護,我還是懶一點,用 Kid 就好,還有整合一個輕量的 javascript 的函式庫 MochiKit ,讓你想作 Ajax 的網頁時,可以輕鬆些。

如果你的系統不會用到 ftp,webdav,也不需要複雜的權限管理,老闆,或是經理要求一定要他們聽過的 Database 不能是 ZODB,或是原本後端就是在 SQL 的環境,那就非常建議,你們的 Web Ap 可以考慮一下了,很快的她就會釋出 0.9 ,及 1.0 stable ,所以到時候就可以真正開發一些應用了 ~

cherrypy 讓你的 web framework 可以直接映射到你的 python 物件上

sqlobject 讓你,不用寫一大堆的 SQL query,table,join 來 join 去,定義好資料型態,還有對應關係,就可以了 ,對付一般的 SQL 情形來說,應該游刃有餘,只要處理一些特殊的部份就好

Mochiki 如果想要用 javascript,讓你有一個現成式庫去擴充

Kid 範本系統,這是將邏輯,和視覺呈現分開的必備工具

上面這些都發揮作用以後,想想,真正的程式可能真的很短了,奸笑中 …… 沒有美術天份的我如果不需要自己蠻幹範本的話,就更美好了


還有很多太細了,還有興趣的朋友,就自己再看了 :-),那個短片教學也很不錯,不過,還是文件內容比較新 :-)

TurboGears 網站 http://turbogears.org/

“Kevin Dangoor” 的 blog http://www.blueskyonmars.com/

Planet Turbogears http://planet.turbogears.org/