Pythonには、Web開発における幅広いアプリケーションがあります。さまざまなフレームワークを考慮すると、開発者にとってどのように選択するかが問題になります。この目的のために、私はここに、パフォーマンス、経験、およびアプリケーションの観点から、より一般的なフレームワークの大まかな分析を行います。
1 Django
Djangoは、Pythonで記述されたオープンソースのWebアプリケーションフレームワークです。 MTVのフレームワークモード、つまりモデルM、テンプレートT、ビューVが採用されています。もともとは、CMS(コンテンツ管理システム)ソフトウェアであるLawrence PublishingGroupの下でいくつかのニュースコンテンツベースのWebサイトを管理するために開発されました。他のフレームワークと比較して、Djangoには独自の機能があり、ormをサポートし、データベースの操作をpythonにカプセル化します。これは、複数のデータベースを適用する必要があるアプリケーションに適した機能です。ただし、この機能は他のライブラリsqlalchemyによって完了されています。
2 Flask
Flaskは、Pythonで記述された軽量のWebアプリケーションフレームワークです。そのWSGIツールボックスはWerkzeugを使用し、そのテンプレートエンジンはJinja2を使用します。 FlaskはBSD認証を使用します。
Flaskは、単純なコアを使用し、拡張機能を使用して他の機能を追加するため、「マイクロフレームワーク」とも呼ばれます。 Flaskには、デフォルトのデータベースまたはフォーム検証ツールがありません。
フラスコは非常に軽く、シンプルなウェブサイトを非常に低コストで開発できます。初心者が学ぶのに非常に適しています。 Flaskフレームワークを学習した後、プラグインの使用法を学習することを検討できます。たとえば、WTForm + Flask-WTFormを使用してフォームデータを検証し、SQLAlchemy + Flask-SQLAlchemyを使用してデータベースを制御します。
3 Tornado
Tornadoは、Webサーバーソフトウェアのオープンソースバージョンです。 Tornadoは、現在の主流のWebサーバーフレームワーク(ほとんどのPythonフレームワークを含む)とは明らかに異なります。非ブロッキングサーバーであり、非常に高速です。
ノンブロッキング方式とepollの使用のおかげで、Tornadoは毎秒数千の接続を処理できるため、TornadoはリアルタイムWebサービスの理想的なフレームワークです。しかし、多くのフレームワークと比較して、トルネードは取り残されており、他のフレームワークは言うまでもなく、ジャンゴはそれを上回っています。純粋なパイソンで開発されたトルネードのパフォーマンスは、サイトンで開発された他のフレームワークのパフォーマンスとまだ比較できないと言えます。に比べ。
4 web.py
web.pyはPythonWebフレームワークであり、シンプルで強力です。 web.pyは公開されており、使用目的に制限はありません。そして非常に小さいので、軽量のWebフレームワークに属している必要があります。ただし、これはweb.pyの機能には影響せず、非常にシンプルで簡単に使用できます。実際のアプリケーションでは、web.pyはより学術的な価値があります。これは、今日の「非常によく抽象化された」Webフレームワークからは学ぶことができないWebアプリケーションの最下層をより多く見ることができるためです:)
5 Aiohttp
クライアント側とサーバー側の両方の高性能非同期Webフレームワークであり、Webソケットもサポートします
6 Sanic
フラスコに似ており、非同期をサポートしています
7 Vibora
最速のpythonWebフレームワークを目指しています。 viboraの高性能は、cythonによって実装されたuvloop非同期フレームワークとcythonによって実装されたhttp_parserに加えて、テンプレート、ユーザールートなどのcythonによって構築されたいくつかのWebコンポーネントに依存しています。まだテスト段階です。
8 Bottle
ボトルは、シンプルで効率的なWSGI準拠のマイクロPythonWebフレームワークです。 microと言うのは、ファイルが1つしかなく、Python標準ライブラリ以外のサードパーティモジュールに依存しないためです。
9 Falcon
Falconは、クラウドAPIを構築するための高性能Pythonフレームワークであり、RESTアーキテクチャスタイルの使用を促進し、可能な限り少ない労力で最大限の成果を上げます。
10 weppy
フラスコよりも優れたパフォーマンスを備えたフルスタックWebフレームワーク。
ナレッジポイントの補足:
フレーム選択の誤解
フレームワークの選択に関しては、多くの人が気付かないうちに次の2つの誤解に陥りがちです。
どのフレームワークが最適か-世界で最高のフレームワークはなく、あなたとあなたのチームに最適なフレームワークだけがあります。プログラミング言語の選択も理由です。チームがPythonに最も精通している場合は、Pythonを使用してください。Rubyに最も精通している場合は、Rubyを使用してください。プログラミング言語とフレームワークは単なるツールです。より多く、より速く、より良く、より安価に行うことができます。仕上げは良いことです。
パフォーマンスへの注意が多すぎる-実際、開発するWebサイトは小さなWebサイトであるため、ほとんどの人はフレームワークのパフォーマンスについてあまり気にする必要はありません.10,000のIPアドレスを持つWebサイトは多くなく、100,000はさらにそうです。滅多。 CPUとメモリは常にアイドル状態であるため、一定の訪問数の前にパフォーマンスについて話すことはあまり意味がありません。さらに、言語とフレームワークは一般的にパフォーマンスのボトルネックではありません。パフォーマンスの問題は、データベースへのアクセスとファイルの読み取りと書き込みで最も頻繁に発生します。 PHPのZendFrameworkは遅いことで有名ですが、Zend Frameworkにはdigg.comなどの大きなサイトもあります。パフォーマンスの問題があるとよく言われるRubyやRailsでも、Twitterを開発できますか?さらに、現在のハードウェアと帯域幅のコストは実際には非常に低くなっています。特にクラウドコンピューティングプラットフォームでは、人件費が最も高くなります。数万のIPがなければ、パフォーマンスの問題についてあまり心配する必要はありません。トラフィックが増加した場合は、何かを購入するためにいくらかのお金を費やしてください。サーバースペースは良好で、パフォーマンスの問題は迅速かつ簡単に解決できます。
注:一部のネットユーザーから、「QuoraはPylonsで開発されている」というのは客観的ではないという質問がありました。ここで言及されている特定のウェブサイトAはBで開発されていますが、Aは主にまたは部分的にBによって開発されていることを指摘しておきます。 、AとCについてはもう心配しないでください。
これまでのところ、pythonのWeb開発フレームワークが紹介されているこの記事はここにあります。より関連するpython Web開発フレームワークについては、ZaLou.Cnの以前の記事を検索するか、以下の関連記事を引き続き参照してください。 ZaLou.Cnをサポートしてください!
Recommended Posts