1. ホーム
  2. python

[解決済み] トルネードを使うタイミング、ツイスト/サイクロン/GEvent/その他を使うタイミング【終了しました。

2022-04-28 18:18:50

質問

最新のマルチユーザーWebアプリケーションを構築するには、どのフレームワーク/ライブラリが最適でしょうか?私は、簡単に拡張できる非同期のWebサーバーを持ちたいと思っています。 どのようなソリューションが 最高のパフォーマンス / スケーラビリティ / 最も有用なフレームワーク (使いやすさ、開発のしやすさという点では)?

良い 機能性 (ウェブソケット、RPC、ストリーミングなど)。

それぞれのソリューションの長所と短所を教えてください。

どのように解決するのか?

"です。 ジャンゴ は、迅速な開発とクリーンで実用的な設計を促進する高レベルのPythonウェブフレームワークです"。 . もしあなたがeコマースサイトのようなものを作っているのなら、おそらくDjangoを使うべきでしょう。それはあなたの仕事を素早く終わらせるでしょう。多くの技術の選択について心配する必要はありません。テンプレートエンジンから ORM に至るまで、必要なものはすべて提供されます。アプリを構成する方法について若干の意見が出るかもしれませんが、私に言わせればそれは良いことです。そして、他のすべてのライブラリの中で最も強力なコミュニティを持っており、簡単にヘルプを利用することができます。

"。 フラスコ は、Werkzeug、Jinja 2、および善意"に基づくPythonのためのマイクロフレームワークです。 . 注意 - "microframework"は誤解を招く可能性があります。これはFlaskが中途半端なライブラリであることを意味するものではありません。つまり、Flask のコアはとてもとてもシンプルなのです。Django とは異なり、Flask はあなたのために技術的な決断をすることはありません。テンプレートエンジンやORMを自由に選択することができます。デフォルトでJinjaのテンプレートエンジンが入っていますが、自分たちで自由に選択することができます。私の知る限り、Flask は API のエンドポイント (RESTful サービス) を書くのに便利です。

"です。 ツイスト は、pythonで書かれたイベント駆動型のネットワーキング・エンジンです。 . これは高性能なエンジンです。その速さの主な理由はディファードと呼ばれるものです。Twistedはdeferredの上に構築されています。ディファードについて知らない人のために説明すると、ディファードは非同期アーキテクチャを実現するためのメカニズムです。Twistedは非常に高速です。しかし、従来のWebアプリケーションを書くには適していません。もしあなたが低レベルのネットワーク的なことをしたいのであれば、Twistedはあなたの友人です。

"です。 トルネード は、もともとFriendFeedで開発されたPythonのWebフレームワークおよび非同期ネットワーキング・ライブラリです。ノンブロッキングネットワークI/Oを使用することで、Tornadoは何万ものオープンコネクションに対応し、ロングポーリング、WebSocket、その他各ユーザーとの長期的な接続を必要とするアプリケーションに理想的です"。 . Tornadoは、DjangoとFlaskの中間のような位置にあります。もしあなたが Django や Flask で何かを書きたいけれども、より良いパフォーマンスが必要なら、Tornado を選ぶことができます。

" サイクロン は、Tornado API を Twisted プロトコルとして実装した Python 用のウェブサーバフレームワークです"。 . さて、Twistedとほぼ同等の性能を持ちながら、従来のWebアプリを簡単に書けるものが欲しいとしたらどうでしょうか?cycloneを紹介しましょう。私は、TornadoよりもCycloneを好みます。Tornadoと非常によく似たAPIを持っています。実のところ、これはTornadoのフォークなのだ。しかし、問題は、コミュニティが比較的小さいことです。Alexandre Fioriだけが、このレポへの主要なコミッターである。

" ピラミッド は、一般的な、オープンソースの、PythonのWebアプリケーション開発フレームワークです。その主な目的は、Python開発者がWebアプリケーションをより簡単に作成できるようにすることです。 私はPyramidを実際に使ったことはないのですが、ドキュメントを一通り見てみました。私が理解したところでは、Pyramidは以下のものに非常によく似ています。 フラスコ を使用することができます。 フラスコ が適切と思われますし、その逆も然りです。

EDIT : 他のフレームワークのレビュー依頼も歓迎します。

出典 http://dhilipsiva.com/2013/05/19/python-libraries-django-twisted-tornado-flask-cyclone-and-pyramid.html