web-dev-qa-db-ja.com

TornadoはDjangoの代替品ですか、それとも互いに補完的ですか?

Tornadoおよびその他のWebフレームワークについていくつか質問があります。

1)トルネードはウェブサーバー(ノンブロッキングサーバー、したがってパフォーマンスが高い)であると主張しているため、Django --ie、tornado is not Webフレームワーク。

しかし、それは私が考えるWebフレームワークを提供します( http://www.tornadoweb.org/documentation#main-modules )-このように、Django。

上記の理解は正しいですか?

2)通常、複数のトルネードがNginxの背後にセットアップされます。 Tomcatは通常、Apache Webサーバーの背後にもセットアップされます。 TornadoがJava Webサーバーに対してTomcatとまったく同じ役割を果たしていると言えますか?答えがイエスの場合、Tornado IS a Webフレームワーク。

3)TornadoとDjangoを一緒に使用する、たとえば http://www.jeremybowers.com/blog/post/3/on-deploying-tornado- web-server-framework / 、しかし、「Djangoを使用すると、Tornadoから非同期を失う」と主張するオンライン記事を読んでいますが、これは本当ですか? 1)で述べたように、なぜ人々はDjangoを使用するのが面倒なのですか?(プラグインを作成するために?)

誰かが私に101の紹介をしてもらえますか?

48
chen

質問に答えるために、

  • いいえ、TornadoはDjangoに代わるものではありません。代替手段です。

  • はい、それらは互いに補完的ですが、同じプロセスではありません(*)

私はDjango=を使用しますが、それは大きなチームの努力であり、かつ/またはSQLデータベースで実行する必要がある場合です。

私は他のすべてにトルネードを使用します。すなわち。個人プロジェクト、WebSocket関連アプリ、NoSQLバックエンドを使用するアプリ。

(*)竜巻の内部でDjangoなど)を実行する必要はありません。

35
Peter Bengtsson
  1. TornadoはWebサーバーおよびほとんどの定義ではWebフレームワークですが、それは非常に最小限のフレームワークです(Railsトルネードモジュールは疎結合であるため、Webサーバーコンポーネントのみ(または下位レベルIOループ)でも使用できます。Djangoと比較すると、多くの領域があります。たとえば、トルネードにはそれほど多くの機能がありません。たとえば、トルネードには実際にはモデルの抽象化はありません。

  2. Nginxの背後でTornadoアプリを実行すると、それが実行中のアプリになります。Nginxはそれにプロキシするだけです。 Tomcatは、アプリケーションとは異なるアプリケーションサーバーだと思います。 TomcatをWebフレームワークとは呼びません。

  3. Djangoは非同期ではないため、通常、Djangoコンポーネントを使用している間、アプリはブロックされます。これは大したことではないかもしれません。何をしているのかによって異なります。 Tornadoの開発者は、ほとんどのアプリケーションで、クライアント、つまりWebブラウザーを待機している間にブロックしないことから最大のメリットが得られると 言い換えています(データベースのブロックは、大したことではありません)クエリを高速に保ちます。

DjangoとTornadoには両方の長所と短所があり、両方に多くの選択肢があります。2つを選択するだけではありません。ここにveryDjango

Djangoの長所:

  • より充実したスタックです(たとえば、管理ページは非常に簡単に実装できます)
  • より確立されている(プラグイン、チュートリアルなど)
  • より良く文書化されている
  • そのORMはとてもいいです
27
Cole Maclean