Django は私のお気に入りの Python Web フレームワークです。pylons、web2py、nevow などを試してみました。
しかし、TurboGears を熱心に調べたことはありません。
TG2 のベータ版が終了したので、試してみるかもしれません。Django と比較した場合の長所と短所を教えてください。
Django は私のお気に入りの Python Web フレームワークです。pylons、web2py、nevow などを試してみました。
しかし、TurboGears を熱心に調べたことはありません。
TG2 のベータ版が終了したので、試してみるかもしれません。Django と比較した場合の長所と短所を教えてください。
TG2には、重要だと思ういくつかの利点があります。
他にもありますが、DjangoにはTG2よりもいくつかの利点があることを知っておくことも重要だと思います。
これはすべて、TG2よりもDjangoを使い始めるのが少し簡単であることを意味しますが、個人的には、追加されたパワーと柔軟性はそれだけの価値があると思います。しかし、あなたのニーズは常に異なるかもしれません。
TG2 は Pylons を使用し、いくつかのデフォルトを変更します - Routes の代わりにオブジェクトをディスパッチし、Mako の代わりに Genshi。彼らは、それを行う方法は 1 つしかないと考えているため、アプリはどの TurboGears Web サイトでも同じ API に依存できます。
Django は、HTTP、ルーティング、テンプレート作成、永続化に独自のハンドラーを使用します。Django には優れたドキュメントと確立されたコミュニティもあります。
TurboGears のデフォルトは、明らかにPaste、オブジェクト ディスパッチング、Genshi、およびSqlAlchemyである最良の組み合わせのライブラリです。この哲学により、より優れたオールラウンドなツールセットが生成されますが、不安定になるリスクがあります。これは、より優れたライブラリが登場した場合に後方互換性を放棄することを意味するためです。
長所。
短所。- 管理者はより基本的です (インライン オブジェクトはまだありません!) - サード パーティのアプリが少ない - 「アプリ」システムはまだ作成中です。- モジュール性を考えると、さまざまなソース (SQLAlchemy、Genshi または Mako、repoze.who、Pylons など) からドキュメントを読む必要があります。
Nikhil の回答に加えて、もう 1 つの小さな違いは、Turbogears が JavaScript ウィジェットのサポートと Mochikit との統合を提供していることだと思います。
一方、Django は javascript フレームワークの中立性を堅持しています。
(少なくとも、これは古いバージョンの Turbogears では当てはまりました...これは TG2 で変更された可能性があります)
編集: TG2のドキュメントを調べたところ、実際に変更されたことがわかりました。Turbogears は、その下で jQuery、ExtJS、Dojo などを使用できる ToscaWidgets を使用するようになりました。これにより、優れた JavaScript ウィジェットを提供しながら、フレームワークの中立性を高めることができます。
これは、JavaScript の経験がない場合は Turbogearsのプロであり、特殊な JavaScript をたくさん書いている場合は Djangoのプロだと思います。
最も重要な質問の 1 つは、このプラットフォームまたはそのプラットフォームが提供する技術的機能だけでなく、オープン ソース プロジェクトの推進理念とそれをサポートするコミュニティの性質です。
私自身、この戦いに勝てるわけがありませんが、この点に関して、DjangoCon 2008 での Mark Ramm の講演は非常に興味深いものでした (Google はその後の議論に終止符を打つことは間違いありません)。
最後に確認したところ、djangoのデータ実装は非常に貧弱です。そして、それは私の本の大きな弱点です。Djangoのormでは、基盤となるデータベースの機能を使用できません。たとえば、優れたデータベース設計にとって重要な複合主キーを使用することはできません。また、単一のデータベースしかサポートしていません。これは、本当に必要になり、手動で実行しないと実行できないことがわかるまで、大したことではありません。最後に、チームフレンドリーな方法でデータベース構造を変更する必要がある場合は、サードパーティの移行ツールのセットから選択する必要があります。
Turbogearsはよりアーキテクチャ的に健全であり、それ自体が素晴らしい個々のツールを統合するために最善を尽くしているようです。また、TGはインテグレーターであるため、好みに合わせてピースを切り替えることができます。SQL Alchemyが気に入らないのですか?SQLObjectを使用できます。Genshiテンプレートが好きではありませんか?djangoのデフォルトに完全に固執しているわけではありませんが、Makoまたはdjangoを使用することもできます。
tg2の短所の時間:
私の2セント。
Django は独自の ORM を使用するため、その特定の Web フレームワークの ORM を学習するには制限があります。より一般的な ORM (TG が使用する SqlAlchemy など) を備えた Web フレームワークを使用すると、雇用可能性が高まると思います。ちょうど私の2セント..