2009-12-02 31 views
2

我一直在使用Ruby on Rails已經有一年多的時間了,並且已經爲Python提供了一些開發工作。我想知道,如果使用Python進行開發就像Ruby一樣令人愉快,就清晰度和易用性而言。 Python適合Web開發的程度如何。我聽說Pylons是Rails框架的直接端口,但是它提供了相同級別的舒適性和功能。是否有任何使用Python構建的流行網站以及與Rails具有相同級別靈活性的框架。Ruby on Rails後的Python

因爲Rails看起來不像工作。

回答

5

Django是最有名的之一。它採用了不同的方法來實現Web開發,然後是Ruby,但它同樣強大且功能豐富。運行Django的示例網站是lawrence.com

主塔是另一個流行的主題,我不知道爲什麼你聽說它是Rails克隆,因爲它不是。這是一個輕量級的框架,利用其他開源項目的強大功能爲您提供實施靈活性。例如,您可以選擇使用SQLAlchemy,SQLObject或CouchDB來管理數據庫。或者你可以選擇Mako,Genshi,Jinja2,或者你喜歡的任何模板。我想你會得到這張照片。一些示例網站運行的掛架是:freebaseCharlie Rose

還有其他的web框架,但它們不太受歡迎。

值得注意的是,TurboGears現在建在Pylons上。我會說它試圖包裝更多的果汁,然後掛架,但它也會限制你更多,因爲它會爲你做出更多的決定。儘管如此,你可以遠離它們,隨心所欲地做事,但它始於一個更加有限的框架。

我會提到的最後一個是Zope,這是一個很大的商業支持的,已經有一段時間了,但我沒有太多的經驗。我相信這是一個不那麼「有趣」的工作,但這只是我的感覺,你可以自己檢查一下。總之,歸結於您的工作流程,我個人認爲Ruby不像Python那樣享受Ruby語言,因此我很喜歡使用python進行Web開發,然後使用Ruby。你真的需要自己嘗試一下,至少我提到的前兩個,試着建立一個小網站,只是爲了感受它。我所能說的就是根據我的經驗,人們或者像Rails或者Python,不是兩者都可以......

好運!

+0

感謝您的回覆。真誠感謝。所以你說,如果我喜歡Ruby,我可能會喜歡Python。無論如何,我想我會給它一個鏡頭。再次感謝你 – Sid 2009-12-03 07:14:47

3

一個很好的web開發框架是Django

+0

但是從我讀過的內容來看,它似乎更像是一個CMS。 – Sid 2009-12-02 18:31:38

+1

這不是一個CMS。它具有與Rails一樣多的特性/功能,但人們喜歡它用於CMS,因爲管理員非常棒。如果你不能利用管理員,那麼比其他框架使用它的好處更少。它工作正常,只是不發光。 – 2009-12-02 18:41:50

3

Python中的兩個主要框架是塔(與共準直Turbogears框架)和比較流行的Django。 Django爲了完成基於內容的網站(CMS等)而跺腳,因爲管理員非常優秀。

但是,您的問題讓您聽起來非常熱衷於Ruby,我懷疑您會找到任何您喜歡的東西。它有兩種方式:我在Rails上很漂亮,但非常喜歡Python和node.js。

3

在過去的一年裏,我使用Python做了很多工作,主要是使用Django。我喜歡它,並同意其他人認爲這對於內容較重的網站來說很棒。 Python及其所有框架都非常遵循一個正確的做法。我瞭解到,我對Django的大部分痛苦在於我錯誤地接近了一個問題,需要重構代碼。如果你是一個精確的,邏輯驅動的思想家,你會很享受Python。

就使用Python代碼庫的網站而言,最大的可能是reddit及其家族網站。 Django的網站也是lists sites that use it。我沒有使用Pylons的特權,但我也聽到它的好處。

+1

Reddit是建立在主塔上,看看他們的源代碼:http://code.reddit.com/browser/r2/r2 – 2009-12-02 22:29:42

+0

啊,我不知道。那個消息可能會讓我去試試Pylons。 – Thomas 2009-12-03 14:47:24

1

清晰和易用是Pythons的一些最大賣點。在說,不同的Python web框架涵蓋了幾乎所有的範圍,從小到簡,一直到大而複雜的一切。

應該發現大多數Python Web框架比Rails具有更少的「魔力」 - 也就是說,它們更清晰一點,從清晰的角度來看,它可以說更好。

在我看來,即使你喜歡Rails,也不打算離開,你還是應該偶爾嘗試其他的語言和框架,給你一個更廣闊的視角。

就我個人而言,我喜歡Turbogears2,但我認爲Django會爲Rails開發人員提供一個很好的起點,以便嘗試其他方法。