7

Django は私のお気に入りの Python Web フレームワークです。pylons、web2py、nevow などを試してみました。

しかし、TurboGears を熱心に調べたことはありません。

TG2 のベータ版が終了したので、試してみるかもしれません。Django と比較した場合の長所と短所を教えてください。

4

8 に答える 8

15

TG2には、重要だと思ういくつかの利点があります。

  • マルチデータベースのサポート
  • シャーディング/データパーティショニングのサポート
  • 集計、複数列の主キーの長年のサポート
  • マルチデータベーストランザクションを処理するトランザクションシステム
  • 上記のすべてで動作する管理システム
  • 再利用可能なテンプレートスニピットのすぐに使えるサポート
  • 再利用可能なテンプレートタグライブラリを作成するための簡単な方法
  • 非標準コンポーネントを使用する際の柔軟性の向上

他にもありますが、DjangoにはTG2よりもいくつかの利点があることを知っておくことも重要だと思います。

  • より大きく、コミュニティで、よりアクティブなIRCチャネル
  • より再利用可能なアプリコンポーネント
  • もう少し開発されたドキュメント

これはすべて、TG2よりもDjangoを使い始めるのが少し簡単であることを意味しますが、個人的には、追加されたパワーと柔軟性はそれだけの価値があると思います。しかし、あなたのニーズは常に異なるかもしれません。

于 2009-03-31T22:21:15.483 に答える
14

TG2 は Pylons を使用し、いくつかのデフォルトを変更します - Routes の代わりにオブジェクトをディスパッチし、Mako の代わりに Genshi。彼らは、それを行う方法は 1 つしかないと考えているため、アプリはどの TurboGears Web サイトでも同じ API に依存できます。

類似点

違い

  • Django は、HTTP、ルーティング、テンプレート作成、永続化に独自のハンドラーを使用します。Django には優れたドキュメントと確立されたコミュニティもあります。

  • TurboGears のデフォルトは、明らかにPaste、オブジェクト ディスパッチング、Genshi、およびSqlAlchemyである最良の組み合わせのライブラリです。この哲学により、より優れたオールラウンドなツールセットが生成されますが、不安定になるリスクがあります。これは、より優れたライブラリが登場した場合に後方互換性を放棄することを意味するためです。

于 2009-03-13T00:06:44.003 に答える
5

長所。

  • SQLAlchemy > ジャンゴ ORM
  • すぐに使用できる複数のテンプレート言語 (genshi、mako、jinja2)
  • より WSGI フレンドリー
  • オブジェクト ディスパッチ > ルート > 正規表現ルーティング。最初の 2 つは TG2 で取得できます
  • ほとんどすべてのコンポーネントはオプションであり、コアを保持して任意の ORM、テンプレート、認証ライブラリなどを使用できます。
  • Sprox > django フォーム

短所。- 管理者はより基本的です (インライン オブジェクトはまだありません!) - サード パーティのアプリが少ない - 「アプリ」システムはまだ作成中です。- モジュール性を考えると、さまざまなソース (SQLAlchemy、Genshi または Mako、repoze.who、Pylons など) からドキュメントを読む必要があります。

于 2009-09-07T00:40:33.993 に答える
1

Nikhil の回答に加えて、もう 1 つの小さな違いは、Turbogears が JavaScript ウィジェットのサポートと Mochikit との統合を提供していることだと思います

一方、Django は javascript フレームワークの中立性を堅持しています。

(少なくとも、これは古いバージョンの Turbogears では当てはまりました...これは TG2 で変更された可能性があります)

編集: TG2のドキュメントを調べたところ、実際に変更されたことがわかりました。Turbogears は、その下で jQuery、ExtJS、Dojo などを使用できる ToscaWidgets を使用するようになりました。これにより、優れた JavaScript ウィジェットを提供しながら、フレームワークの中立性を高めることができます。

これは、JavaScript の経験がない場合は Turbogearsのプロであり、特殊な JavaScript をたくさん書いている場合は Djangoのプロだと思います。

于 2009-03-13T00:33:17.217 に答える
1

最も重要な質問の 1 つは、このプラットフォームまたはそのプラットフォームが提供する技術的機能だけでなく、オープン ソース プロジェクトの推進理念とそれをサポートするコミュニティの性質です。

私自身、この戦いに勝てるわけがありませんが、この点に関して、DjangoCon 2008 での Mark Ramm の講演は非常に興味深いものでした (Google はその後の議論に終止符を打つことは間違いありません)。

于 2009-03-13T02:16:20.773 に答える
0

最後に確認したところ、djangoのデータ実装は非常に貧弱です。そして、それは私の本の大きな弱点です。Djangoのormでは、基盤となるデータベースの機能を使用できません。たとえば、優れたデータベース設計にとって重要な複合主キーを使用することはできません。また、単一のデータベースしかサポートしていません。これは、本当に必要になり、手動で実行しないと実行できないことがわかるまで、大したことではありません。最後に、チームフレンドリーな方法でデータベース構造を変更する必要がある場合は、サードパーティの移行ツールのセットから選択する必要があります。

Turbogearsはよりアーキテクチャ的に健全であり、それ自体が素晴らしい個々のツールを統合するために最善を尽くしているようです。また、TGはインテグレーターであるため、好みに合わせてピースを切り替えることができます。SQL Alchemyが気に入らないのですか?SQLObjectを使用できます。Genshiテンプレートが好きではありませんか?djangoのデフォルトに完全に固執しているわけではありませんが、Makoまたはdjangoを使用することもできます。

tg2の短所の時間:

  • TGにははるかに小さなコミュニティがあり、コミュニティには通常その利点があります。
  • Djangoの名前ははるかに優れています。私はその名前が本当に好きです;-)
  • Djangoは、非常に優れた管理ツールを備えた、初心者のWeb開発者にとってはよりシンプルに見えます。
  • TGにはまともなドキュメントがありますが、GenshiのサイトにアクセスしてGenshiを学習したり、SQLAlchemyのサイトにアクセスして学習したりする必要があります。Djangoには優れたドキュメントがあります。

私の2セント。

于 2009-03-13T14:06:02.910 に答える
0

Django は独自の ORM を使用するため、その特定の Web フレームワークの ORM を学習するには制限があります。より一般的な ORM (TG が使用する SqlAlchemy など) を備えた Web フレームワークを使用すると、雇用可能性が高まると思います。ちょうど私の2セント..

于 2009-03-13T00:37:04.430 に答える