2011-07-14 63 views
2

我來自java世界(apache wicket),需要爲我的項目使用python。什麼網頁框架可供選擇

我聽說過Turbogear2,Pyramid(Pylons)或Django並閱讀了一些關於它們的內容。 我的第一選擇是建立在Pylons之上的TurboGears2,工具已經打包,但也許有人作爲一些建議 。

我並不需要創建很多像維基或博客內容,但表示和 提供訪問我的數據庫中的一些對象,然後生成一個javascript接口 對這個數據進行工作。

我需要的網絡架構,爲我:與角色

  • 認證系統(管理員,用戶,組,...)
  • 使用增強的JavaScript工具,如dojo應用程序外,但是 如果我可以在應用程序和JavaScript庫之間共享組件,那就太好了。
  • easy AJAX:組件必須刷新'onChange'(我不喜歡提交按鈕)
  • 一個很好的ORM。不知道SQLAlchemy但似乎不錯,映射對象到/從數據庫,數據庫池,...
  • 輕鬆部署(從Java,我認爲這將是確定未來;))
  • 輕鬆添加CSS或JS到
  • 一個框架,不要傷我的神經網頁;)
  • 良好的文檔和/或良好的支持

  • 線程/多進程的支持(也有大量的計算有些人冒着巨大。記憶力,其他一些採取 處理時間。所以我想能夠推出pr從應用程序中溢出。但我認爲這更多關於using a python library 而與此問題無關? )

THX

+2

所有的框架都這樣做。我們無法提供更多的幫助,超越您已經完成的工作。我們能做的最好的事情就是給你投擲一枚硬幣。元首。 –

回答

1

正如美國洛特在他的評論中指出的那樣,你的要求不給一個明確的「贏家」至少框架的有本事。

三個維度沿着該蟒Web框架發散更是IMO:

  • 貼近於 「Python的」
  • 亮度
  • 開銷的概念

通常打火機框架將:需要更多的開銷和pythonic方法(webpy,cherrypy ...),而較重的框架(django,turbogear ...)可讓您在幾分鐘內啓動並運行應用程序但會以某種方式迫使你以某種(合乎邏輯但不一定是pythonic)的方式來塑造你的代碼。

這就是說,我相信95%的答案依賴於個人喜好。

HTH!

6

對於我自己來說,金字塔中的mako + sqlalchemy是這筆交易的最終成果。如果你進入一些體面的數據庫工作,SqlAlchemy只是最好的工作。我也是mako模板的忠實粉絲。在本書中,能夠在mako本身中創建可重用的演示文稿類型函數,並嘗試在最終嘗試導入的python模塊中執行某些操作。

我真正想提到的是,對於您的最終產品,您應該通過使用消息隊列和Celery之類的東西來完成工作並使用更多Web應用來提交/結果顯示比實際嘗試將工作分離出Web應用程序。

+0

儘管我沒有反對SqlAlchemy(它肯定享有大量的用戶基礎),但我認爲這種說法「只是最好的合作」實際上更像是個人意見而非事實。首先,我更喜歡Canonical的[風暴](https://storm.canonical.com/),這並沒有那麼多......鍊金術!它在工作中更加透明,更輕,更快,並讓您更好地控制數據庫。 (我並不是說它絕對更好,我只是聲稱它不同於SqlAlchemy,對於大部分_my_工作 - 這是比SqlAlchemy更好的解決方案... – mac

+1

當然,但是在使用Django ORM之後,風暴,因爲我是一個Ubuntu規範的粉絲,並檢查了一些啓動板的代碼庫,我發現SqlAlchemy是最好的工作。它分解爲原始sql比其他人慢得多,當你試圖編寫一個有點勝利這是後端不可知的應用程序。 – Rick

0

的輿論一片......

我喜歡塔的字符(現在金字塔代替)和Django框架的廣泛支持的新舉措(儘管不是其keeness重塑這麼多輪 - ESP。 MVC)。

我喜歡Web2py中的數據抽象層,可以部署到Google的AppEngine。這是做出我的決定的一個關鍵特徵。 Web2py是RoR的靈感,有些人可能會推卸責任,但我已經讚賞並且迄今爲止還沒有阻止任何發展道路。

最後,我嘗試了幾個框架,我使用了Web2py(使用offical book作爲參考)。 A great community,響應速度非常快。

1

除了你提到的框架,你一定要看看web2py。我認爲你會發現它是最容易設置,學習和使用的,尤其是考慮到它提供的功能的廣泛性。其中一個如果它的primary goals是不「打破你的神經」。它包括一個很好的authentication system;集成Javascript/AJAX支持(另請參閱components);快速而強大的database abstraction layer; web services; automatic RESTful API generation;很棒documentation;和一個非常有幫助和響應mailing list。開發非常活躍,至少每個月都有新版本發佈(從未破壞向後兼容性)。這是最近的presentation

相關問題