2011-06-01 36 views
4

我有4天休息時間,我將使用這段時間在python web框架中重寫我們的RoR(Ruby on Rails)應用程序,以獲得樂趣; - ](以及爲什麼不使用開關,RoR是偉大的,但始終在變化,可以用盡)用於小團隊的Python Web框架

我不知道python web框架非常好,我很高興web.py,django,cherry.py,pylons/pyramid和其他幾個。我們的要求是(把一切都可以無關):

  • MVC(嚴格與否)
  • 小團隊(2-3人包括一個設計師)
  • 使用樂趣
  • REST支持
  • 多級緩存(DB查詢,頁面緩存)
  • Nginx的支持(X-加速重定向文件下載)
  • 交通擁擠(120萬〜意見)
  • 的url rewrting(多域不僅支持子域)
  • 不是一個問題,如果它不是炒作
  • 不是一個問題,如果沒有插件
  • SQL或NOSQL(可以是有趣的嘗試NOSQL)

那麼你會建議?

回答

4

我認爲大多數大框架都適合您的需求,所以也許您可以從您正在編寫的應用程序的角度來看待它。您想「開箱即用」多少工作?你需要用戶管理嗎?你會需要一個管理面板等

我使用Django,它是偉大的,當你不想重寫很多樣板。有時試圖彎曲它做你想做的事情可能有點乏味,但一旦你頭腦發熱,它就會錯綜複雜,你可以很快完成工作。

使用Django反正:

1

我會推薦DJANGO或TurboGears。

+0

這不是一個投票,這是一個答案。你爲什麼會推薦Django或Turbo Gears? – 2011-06-01 20:40:07

0

我不不要以爲你可以在任何主要的Web框架中出錯。就我個人而言,我最喜歡使用Django,並且會以這種方式傾斜,ORM非常棒,它的哲學/設計與我個人的偏好密切相關。然而,如果你想要走一條不同的路線,bottle是一個非常有趣的輕量級微型框架,我發現它很高興與開發。如果你想要走NoSQL路線,MongoDB有很好的Python支持。 PyMongo非常出色(以及Python中推薦使用MongoDB的方式),MongoEngine是一個不錯的小ORM(如果你喜歡這種事情)。

0

在你提到的框架中,Django擁有最大的動力,並且最有可能適合你來自Rails背景的理想框架。通過這個,我的意思是它有助手,可以讓你快速生成你的表格,儘管沒有腳手架。 (事實上​​,Django的方式比Rails中的腳手架稍微好一點,因爲你可以使用全部或部分腳本)

它具有很多輔助方法的良好ORM,並且是最好的功能之一,它有一個一旦你定義你的模型,功能齊全的管理界面。即使在網站開發過程中,您也可以開始移植數據。

它還提供了出色的用戶支持,包括權限,訪問控制,組,用戶配置文件。

創建自己的中間件和上下文處理器讓您可以將經常重用的塊作爲插件抽象出來,這很容易(也很有趣)。

Django的唯一特性沒有你在上面指定的是NoSQL支持。這只是一半。如果您想爲應用程序的某些部分使用非關係數據庫(例如會話存儲),則可以。如果你想用它作爲你的獨家後端,你將失去一些Django的超棒功能,除非你用Django補丁django-nonrel

我已經使用了您提到的幾個其他選項的組合的渦輪齒輪。該社區有一些偉大的人,但他們目前正在經歷一次重大的體系結構改造,並且誠實地說,他們沒有像Django那樣得到太多的開發者關注。

3

除了提到的其他框架(這些都是很好的選擇),你應該檢查出web2py。這是一個功能豐富的全棧框架,非常容易設置,學習和使用。它最初是受Ruby on Rails的啓發,所以如果你重寫一個RoR應用程序,你會發現它比其他一些Python框架更舒服。以下是關於您的要求的一些細節:

該框架是在非常活躍的開發(新版本每2-4周),但致力保持向後兼容性,使現有的應用程序不會在升級突破。如果您有任何問題,您將從友好和敏感的mailing list獲得大量幫助。