[解決済み] トルネードを使うタイミング、ツイスト/サイクロン/GEvent/その他を使うタイミング【終了しました。
質問
最新のマルチユーザー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 : 他のフレームワークのレビュー依頼も歓迎します。
関連
-
python implement mysql add delete check change サンプルコード
-
Python 可視化 big_screen ライブラリ サンプル 詳細
-
[解決済み] [Solved] sklearn error ValueError: 入力に NaN、infinity または dtype('float64') に対して大きすぎる値が含まれている。
-
[解決済み] _tkinter.TclError: 表示名がなく、$DISPLAY環境変数もない。
-
[解決済み】Python regex AttributeError: 'NoneType' オブジェクトに 'group' 属性がない。
-
[解決済み】numpyの配列連結。"ValueError:すべての入力配列は同じ次元数でなければならない"
-
[解決済み】numpy: true_divide で無効な値に遭遇
-
[解決済み】Pythonでgoogle APIのJSONコードを読み込むとエラーになる件
-
[解決済み] Pythonでシングルトンを作成する
-
[解決済み] Pythonの__future__は何に使うのか、いつ、どのように使うのか、その仕組みについて
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
Python百行で韓服サークルの画像クロールを実現する
-
Pythonを使って簡単なzipファイルの解凍パスワードを手作業で解く
-
Python interpreted model libraryによる機械学習モデル出力の可視化 Shap
-
Python 入出力と高次代入の基礎知識
-
[解決済み】DataFrameのコンストラクタが正しく呼び出されない!エラー
-
[解決済み] _tkinter.TclError: 表示名がなく、$DISPLAY環境変数もない。
-
[解決済み】csv.Error:イテレータはバイトではなく文字列を返すべき
-
[解決済み】TypeError: 系列を <class 'float'> に変換することができません。
-
[解決済み】インポートエラー。モジュール名 urllib2 がない
-
[解決済み】Flaskのテンプレートが見つからない【重複あり