61

存在するすべての Python Web フレームワークをほとんど試しましたが、特効薬のフレームワークがなく、それぞれに長所と短所があることに気付くまでに長い時間がかかりました。私はSnakeletsから始めて、大騒ぎせずに低レベルでほとんどすべてを制御できることを心から楽しんでいましたが、TurboGearsを発見して以来、それ (1.x) を使用しています。Catwalk や Web コンソールなどのツールは、私にとってかけがえのないものです。

しかし、TurboGears 2 が登場して WSGI がサポートされるようになり、Django 陣営と WSGI 陣営の間の宗教論争を読んだ後、私は「正しい方法でやるか」、たとえば WSGI を学ぶか、貴重な時間を関数の記述に費やすかで本当に迷っています。 Django や私のためにすべてを行う高レベルのフレームワークを使用するのではなく、Django やその他のフルスタック フレームワークに既に存在します。私が見ることができる後者の欠点はかなり明白です:

  1. その過程で何も学んでいない
  2. もっと低いレベルのことをする必要があるとしたら、それは苦痛になるだろう
  3. 認証を使用する基本的なサイトだけに必要なオーバーヘッドは非常識です。(IMO)

だから、私の質問は、どちらがより良い選択なのか、それとも単に意見の問題なのかということだと思います.Djangoが最小限の手間で私が望むものを達成するのであれば、それを吸って使用する必要があります(認証とCRUDインターフェースが必要です)私のデータベース)?Werkzeug、Glashammer、およびその友人たちを試してみましたが、AuthKit と Repoze には恐怖を感じました。私は Pylons を見ましたが、ドキュメントが不足しているようで、認証や CRUD インターフェースなどの単純な機能を参照すると、さまざまな wiki ページとドキュメントが互いに矛盾しているように見え、バージョンなどのハックが異なりました。


私が十分に明確ではなかったことを指摘してくれた S. Lott に感謝します。私の質問は次のうちどれが長期的には価値がありますが、短期的には苦痛ではありません (例えば、ある種の妥協点、誰か?) 後者の場合、Django をもう一度試してみるか、TurboGears 1.x を使い続けるか、または他のフレームワークに挑戦するかについての提案をいただければ幸いです。

また、CherryPy を試してみましたが、すぐに使用できる十分な CRUD アプリケーションを見つけることができなかったようです。

4

13 に答える 13

55

DjangoキャンプとWSGIキャンプの間の宗教的議論

WSGIとは何か、Djangoとは何かについて、少し混乱しているように思われます。DjangoとWSGIが競合していると言うのは、CとSQLが競合していると言うのと少し似ています。つまり、リンゴとオレンジを比較しているのです。

Djangoはフレームワークであり、WSGIはサーバーがフレームワークと対話する方法のためのプロトコル(Djangoでサポートされている)です。最も重要なことは、WSGIを直接使用することを学ぶことは、アセンブリを学ぶことに少し似ています。これは素晴らしい学習体験ですが、本番コードに対して実際に行うべきことではありません(また、意図されたものでもありません)。

とにかく、私のアドバイスは自分でそれを理解することです。ほとんどのフレームワークには、「1時間でwiki / blog/pollを作成する」タイプの演習があります。それぞれと少し時間を過ごして、どれが一番好きかを考えてください。結局のところ、それらを試してみたいと思わない場合、どのようにして異なるフレームワークを決定できますか?

于 2009-03-31T22:25:31.977 に答える
16

TG2をもう一度見てみることをお勧めします。前回のバージョンからの進歩のいくつかに、人々は気づいていないと思います。使用可能なユーティリティーの WSGI スタックの増加とは別に、考慮すべき TG2 固有の項目がかなりあります。以下にいくつかのハイライトを示します。

TurboGears Administration System - データベースへのこの CRUD インターフェイスは、宣言的な構成クラスを使用して完全にカスタマイズ可能です。また、Dojo と統合されているため、無限にスクロール可能なテーブルが提供されます。サーバー側の検証も自動化されています。管理インターフェイスは RESTful URL と HTTP 動詞を使用するため、業界標準を使用してプログラムで簡単に接続できます。

CrudRestController / RestController - TurboGears は、コントローラーでサービスを処理するための構造化された方法を提供します。RestController を拡張するだけで、標準化された HTTP 動詞を使用できるようになります。Sproxを CrudRestController と組み合わせると、完全にカスタマイズ可能な自動生成フォームを使用して、アプリケーションのどこにでもcrudを配置できます。TurboGears は、URL のファイル拡張子として MIME タイプをサポートするようになったため、コントローラーで .json と .xml を html のレンダリングに使用するのと同じインターフェイスでレンダリングできます (コントローラーから辞書を返します)。

リンクをクリックすると、過去のドキュメントよりも広範な、Sphinx で構築された新しいドキュメント セットがあることがわかります。

最高のWeb サーバーORM、およびテンプレート システム(独自のものを選択) が内部にあるため、TG が、サイトの成長に合わせてスケーラビリティを保ちながら、すぐに使い始めたい人にとって理にかなっている理由を簡単に理解できます。

TurboGears は、動いているターゲットを攻撃しようとしていると見なされることがよくありますが、リリースについては一貫しているため、必要な最新機能を取得するためにトランクから作業することを心配する必要はありません. 今後の予定: 追加の TurboGears 拡張機能により、簡単に貼り付けコマンドを使用してアプリケーションの機能を拡張できます。

于 2009-03-31T21:54:24.207 に答える
11

あなたの質問は、「WSGI を学習して自分ですべてを行う価値があるか」、または「すべてを実行するフルスタック フレームワークを使用する価値があるか」のようです。

それは誤った二分法であり、明らかに第 3 の方法があると思います。TurboGears 2 は、「すべてを自分で行う」スタイルのフレームワークから、WSGI ミドルウェアの理解、およびアプリケーションのニーズに合わせてフレームワークのほぼすべての側面をカスタマイズする機能まで、スムーズなパスを提供しようとします。

すべての場所、すべてのレベルで成功するわけではありませんが、特に、TurboGears 1 の経験がすでにある場合は、TG2 の学習曲線は最初は非常に簡単で、正確なタイミングでより深く学習できるようになると思います。君はそれが要る。

特定の問題に対処するには:

  • TG1 で使い慣れたものと一致する、すぐに使用できる認証システムを提供します。
  • tgext.admin と呼ばれる、すぐに使用できる「django admin」のようなインターフェースを提供します。これは、Dojo とうまく連携して、洗練されたスプレッドシートのようなインターフェースをデフォルトにします。

また、そこにある他のいくつかのオプションに対処し、その利点について少し話したいと思います.

  • チェリーパイ。 CherryPy は優れた Web サーバーであり、優れたミニマルな Web フレームワークだと思います。内部的には WSGI に基づいていませんが、「完全なスタック」エクスペリエンスは提供されませんが、優れた WSGI サポートがあります。ただし、高速である必要があり、Django または TurboGears によって提供されるデフォルトに特に適していないカスタム セットアップの場合、これは優れたソリューションです。

  • ジャンゴ。Django は、Web サイトを開発するための非常に優れた、緊密に統合されたシステムだと思います。あなたのアプリケーションと作業スタイルが標準的なセットアップにうまく適合する場合、それは素晴らしいことです。ただし、DB の使用を調整したり、テンプレート言語を置き換えたり、別のユーザー認証モデルを使用したり、別の方法で処理したりする必要がある場合は、フレームワークとの戦いになる可能性が非常に高くなります。

  • Pylons CherryPy のような Pylons は、優れた最小限の Web フレームワークです。CherryPy とは異なり、システム全体で WSGI が有効になっており、SQLAlchemy や Mako などの適切なスケーリングに役立つ適切なデフォルトがいくつか用意されています。新しい公式ドキュメントは、あなたが見たと思われる古い wiki ドキュメントよりもはるかに優れた品質です。

于 2009-03-31T22:07:15.843 に答える
7

CherryPy をご覧になりましたか。それは最小限ですが、効率的でシンプルです。邪魔にならないほど低レベルですが、複雑さを隠すのに十分な高さです。よく覚えていれば、TurboGears はその上に構築されていました。

CherryPy を使用すると、多くのことを選択できます。(テンプレート フレームワーク、必要に応じて ORM、バックエンドなど)

于 2009-03-31T17:46:40.823 に答える
2

正しい答えは、実際に何を求め、何を必要としているかによって異なります. 目標がアプリケーションをできるだけ早く展開することである場合は、「より単純な」ルート、つまり. Django、確かに行くべき道です。十分にテストされ、十分に文書化されたシステムの価値を過小評価することはできません。

一方、他のドメインに適用される可能性のあるさまざまな新しいことを学ぶ時間があり、カスタマイズの範囲を広くしたい場合は、Turbogears のようなものが優れています. Turbogears は最大限の柔軟性を提供しますが、Repoze、SQLAlchemy、Genshi などの外部ドキュメントを読むのに多くの時間を費やす必要があります。TG2 ドキュメントは、外部ドキュメントが以前よりも優れていると考えられるため、場合によっては TG1 ドキュメントよりも意図的に詳細度が低くなります。この種のことが障害になるか、投資になるかは、独自の要件によって異なります。

于 2009-04-01T09:36:46.483 に答える
1

Pylons は私にとって素晴らしいツールのようです:

  • 実際の Web フレームワーク (CherryPy は単なる Web サーバーです)、
  • 小さなコード ベース - 他のプロジェクトの再利用、
  • Paste に基づいて、完全に WSGI を念頭に置いて書かれています。
  • アプリをすぐにコーディングし、必要に応じて低レベルのビットに触れることができます。

私は CherryPy と TurboGears を使用し、他の多くのフレームワークを見てきましたが、Pylons ほど軽量で生産的なものはありませんでした。Google でプレゼンテーションを確認してください。

于 2009-05-29T14:09:47.780 に答える
0

I would suggest for TurboGears 2. They have done a fantastic job of integrating best of Python world.

WSGI: Assuming you are developing moderately complex projects/ business solutions in TG2 or some other framework say Grok. Even though these frameworks supports WSGI does that mean one who is using these frameworks have to learn WSGI? In most cases answer is No. I mean it's good have this knowledge no doubt.

WSGI knowledge is probably is more useful in cases like

  • you want to use some middleware or some other component which is not provided as part of the standard stack for eg. Authkit with TG or Grok without ZODB.
  • you are doing some integration.

CherryPy is good but think of handling your database commits/rollbacks at the end of transactions, exposing json, validations in such cases TG, Django like frameworks do it all for you.

于 2009-03-31T19:46:54.637 に答える
-1

Web2py はここでの秘密のソースです。お見逃しなく。

于 2015-11-12T01:36:31.150 に答える