数日前、友人が私に次のようなメッセージを残しました: Python フレームワークの有用な概要はいつ公開されます (この記事のリストはその一部にすぎず、すべての Python フレームワークが含まれているわけではありません)。という記事が生まれました。 (突然、とてもいい気分になりました)
推奨されるもの: Django (推奨される学習: Python ビデオ チュートリアル )
Django は最も有名な Python フレームワークであるはずですが、GAE や Erlang にも Django の影響を受けるフレームワークがあります。 Django は、大きく包括的な方向性を示しており、完全に自動化された管理バックエンドで最も有名です。ORM を使用して単純なオブジェクト定義を行うだけで、データベース構造とフル機能の管理バックエンドを自動的に生成できます。
利点:
完璧なドキュメントサポートを備えたオープンソースフレームワーク
多くのソリューション、より多くの内部機能サポート
エレガントな URL、完全なルーティングシステム
セルフサービスのバックグラウンド管理
欠点:
システムは密接に結合されているため、パッチを適用したとしても、お気に入りのサードパーティ ライブラリに置き換えることは非常に困難です。乗るときも非常に不快に感じます。
Django に付属の ORM は SQLAlchemy よりもはるかに強力ではありません。
テンプレート関数は比較的弱いため、Python コードを挿入できません。より複雑なロジックを記述するには、Python を使用してタグまたはフィルターを実装する必要があります。
推奨 2: Flask
Flask は、Python で書かれた軽量の Web アプリケーション フレームワークです。 Werkzeug WSGI ツールボックスと Jinja2 テンプレート エンジンに基づいています。 Flask は、単純なコアを使用し、拡張機能を使用して機能を追加するため、「マイクロフレームワーク」とも呼ばれます。 Flask には、デフォルトで使用されるデータベースまたはフォーム検証ツールがありません。
利点:
Flask は Django よりも柔軟性があります。Flask を使用してアプリケーションを構築する前に、開発者がコンポーネントを選択する際の柔軟性が高まります。一部のアプリケーション シナリオは適切ではない場合があります。標準を使用してください。 ORM (オブジェクト リレーショナル マッピング)、またはさまざまなワークフローおよびテンプレート システムと対話する必要があります。
欠点:
Flask は単なるカーネルであり、デフォルトで 2 つの外部ライブラリに依存します: Jinja2 テンプレート エンジンと Werkzeug WSGI ツール セット. 他の多くの関数が拡張機能の形式で埋め込まれています。
推奨事項 3: Scrapy
Scrapy は、Python で開発された高速で高レベルの画面スクレイピングおよび Web スクレイピング フレームワークであり、Web サイトをスクレイピングし、Extract から抽出するために使用されます。ページからの構造化データ。 Scrapy は広く使用されており、データマイニング、モニタリング、自動テストに使用できます。
利点:
Scrapy は非常に強力なクローラー フレームワークです。リクエストを簡単に構築できるだけでなく、レスポンスを簡単に解析できる強力なセレクターも備えています。ただし、最も人気のあるそのパフォーマンスには次のものがあります。クロールと解析の速度、ダウンローダーはマルチスレッドであり、リクエストは非同期にスケジュールされて処理されます。この 2 つの点により、クロール速度が非常に速くなります。
さらに、ロギング、例外、シェル、その他のモジュールが組み込まれており、クロール作業に非常に便利です。
欠点:
Scrapy はカプセル化されたフレームワークです。ダウンローダー、パーサー、ログ、例外処理が含まれています。マルチスレッドとツイスト処理に基づいています。単一の Web サイトをクロールするのに適しています。開発上は有利ですが、複数のWebサイトから100件のWebサイトをクローリングする場合、同時処理や分散処理の柔軟性が低く、調整や拡張には不便です。
おすすめ 4: Tornado
Tornado は、Web サーバー ソフトウェアのオープン ソース バージョンです。 Tornado と今日の主流の Web サーバー フレームワーク (ほとんどの Python フレームワークを含む) の間には明らかな違いがあります。それは、ノンブロッキング サーバーであり、非常に高速であるということです。
利点:
Tornado は、非同期ネットワーキングの詳細を厳密に制御する必要があるアプリケーションにインフラストラクチャを提供することに優れています。たとえば、Tornado は、組み込みの非同期 HTTP サーバーだけでなく、非同期 HTTP クライアントも提供します。したがって、Tornado は、他のサイトに並行してクエリを実行し、返されたデータを操作する Web スクレイパーやボットなどのアプリケーションを構築するのに最適です。
欠点:
テンプレートおよびデータベース部分には選択できるサードパーティ モジュールが多数あり、機能モジュールへのカプセル化には適していません。
推奨事項 5: Web2py
web2py は、Python 言語用に提供されるフル機能の Web アプリケーション フレームワークであり、Web アプリケーションを機敏かつ迅速に開発できるように設計されています。 、安全でポータブルなデータベース駆動型アプリケーションであり、Google App Engine と互換性があります。
利点:
Web2py の最大の魅力は、組み込みの開発環境です。 Web2py インスタンスをセットアップすると、Web インターフェイス (基本的にはオンライン Python アプリケーション エディター) が提供され、そこでアプリケーションのコンポーネントを構成できます。これは通常、モデル、ビュー、コントローラーを作成することを意味し、それぞれが Python モジュールまたは HTML テンプレートを通じて記述されます。
欠点:
Web2py の重要な制限の 1 つは、Python 2.x とのみ互換性があることです。まず、これは Web2py が Python 3 の非同期構文を使用できないことを意味します。 Python 3 に固有の外部ライブラリに依存している場合は、運が悪いです。ただし、Web2py Python3 との互換性を持たせるための作業が進行中であり、この記事の執筆時点では完成に近づいています。
おすすめ 6: Weppy
Weppy は、Flask のミニマリスト スタイルと Django の完成度の中間点のように感じます。 Weppy アプリケーションの開発には Flash の直接性がありますが、Weppy にはデータ レイヤーや認証など、Django にある多くの機能が備わっています。したがって、Weppy は、非常に単純なアプリケーションから中程度に複雑なアプリケーションまでの範囲のアプリケーションに適しています。
利点:
Weppy のドキュメントはフレームワーク自体と同じスタイルです。これはクリーンで読みやすく、人間による消費を目的としています。通常の「hello world」アプリケーションの例に加えて、初心者プロジェクトとして Weibo システムを作成できる優れたウォークスルー チュートリアルも含まれています。
欠点:
Weppy には拡張メカニズムがありますが、公式に承認されたアドオンのリストは小さく、Flask の拡張ディレクトリよりもはるかに小さいです。
推奨事項 7: ボトル
ボトルは、他の「マイクロフレームワーク」よりもコンパクトで簡潔であるため、ミニフラスコと考えることができます。設置面積が最小限に抑えられているため、Bottle は他のプロジェクトに組み込んだり、REST API などの小規模なプロジェクトを迅速に配信したりするのに最適です。
利点:
Bottle は他のフレームワークほど多くのドキュメントを必要としませんが、ドキュメントは決してケチではありません。主要なものはすべて 1 つの (長いですが) Web ページに収まります。これに加えて、各 API の完全なドキュメント、さまざまなインフラストラクチャにデプロイする方法の例、組み込みのテンプレート言語の説明、および一般的なレシピのコレクションが含まれています。
欠点:
Bottle のミニマリズムの結果の 1 つは、一部の機能が単純に存在しないことです。 CSRF 保護やその他の機能を含むフォーム検証はサポートされていません。高度なユーザー対話をサポートする Web アプリケーションを構築したい場合は、それらを自分で追加する必要があります。
Python 関連の技術記事の詳細については、Python チュートリアル 列にアクセスして学習してください。
以上がPython ではどのようなフレームワークが利用できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。