Python-web-development-libraries-choosing-a-better-framework
より良いフレームワークの選択
Python Webフレームワークの世界には多くの選択肢があります。 考慮すべき著名なフレームワークには、開発者のマインドシェアを競うDjango、Flask、Bottle、Diesel、Web2py、Pyramid、Falcon、Pecanなどがあります。 Pyramid、Django、Web2py、Flaskのようなフレームワークは、長所と短所のリストで理想的です。プロジェクトに1つだけを選択するのは難しい選択です。
Dashは、さまざまなニーズに合わせて完全に設計されています。 そのため、開発者として、オプションを無数に削減して、プロジェクトを予定通りに、完璧に仕上げるのに役立つものにしたいと考えています。
Flask、Pyramid、およびDjangoフレームワークを比較すると、Flaskは主に小規模なアプリケーションを対象としたマイクロフレームワークであり、PyramidとDjangoはどちらも大規模なアプリケーションを対象としています。 Pyramidは柔軟性と自由を念頭に置いて構築されているため、開発者はプロジェクトに適したツールを持っています。 ピラミッドの場合、開発者はデータベース、URL構造、テンプレートスタイルなどを自由に選択できます。 ただし、DjangoにはWebアプリケーションに必要なすべてのバッテリーが含まれているため、Djangoをインストールして作業を開始するだけです。
DjangoにはORMが付属していますが、PyramidとFlaskには開発者がデータを保存する方法(または選択するかどうか)を選択できます。 一般に、非Django Webアプリケーションで最も一般的なORMはSQLAlchemyですが、他のオプションはDjangoDB、MongoDB、LevelDB、およびSQLiteです。
私のプロジェクトでDjangoとWeb2pyを選択する必要がある場合、開発者であること。 フレームワークの利点と制限の両方について、いくつかのアイデアが必要です。 それでは、DjangoとWeb2pyを比較しましょう-
ジャンゴ
Djangoのコミュニティは大きなプラスです。 これは実際、開発者にとってリソースの富が大きくなることを意味します。 具体的には、これは次のようになります-
- ドキュメンテーション
- オープンソースリソース
- サードパーティアプリのサポート
- 展開サポート
- 役に立つ開発者がいるIRCチャンネル
Djangoには、開発チームとドキュメントの非常に大きなコミュニティがあります。 ユーザーのロジック(サインアップ、認証)、非同期タスク、API作成、ブログなどを自動化できる多くのサードパーティアプリを提供するため、複雑なバックエンドの作成を扱う際に適切なフレームワークです。
Web2py
Web2pyは、単純なWebアプリまたはHTTPサーバーの高速開発に適しています。 以下はweb2pyの利点と制限の一部です。
Web2pyの利点
以下は、Web2pyフレームワークの利点の一部です-
- Web2pyは、開発の速度と単純さの点でDjangoおよびFlaskと比較すると、潜在的なフレームワークです。 Web2pyはpythonベースのテンプレート言語を使用するため、Python開発者はテンプレートをビューとして記述する基本を理解した直後にコードの記述を開始できます。
- Web2pyは、実行時間を短縮し、コンパイルされた方法でコードを配布できるようにする最適化としてPythonコンパイル済みコードを実行できます。
Web2pyの制限
以下は、フレームワークの制限の一部です。
- Web2pyはdoctestsをサポートしていますが、ユニットテストはサポートしていません。 現在、doctestsは範囲が限られているため、最適な選択ではありません。
- プロダクションモードと開発モードに違いはありません。 例外が発生した場合、チケットは常に生成されるため、エラーを確認するにはチケットに移動する必要があります。 これは本番サーバーの場合には役立つかもしれませんが、開発者はチケット番号をチェックするのではなく、エラーを即座に確認する必要があるため、開発環境では困難です。
- Web2pyには、多くの種類のデータベースエンジンを抽象化できる優れたデータベース抽象化レイヤー(DAL)がありますが、強力なORMがありません。 比較的大きなモデルを扱っている場合、コードはネストされたすべての定義と属性に散らばってしまい、事態が複雑になります。
- web2pyのIDEサポートは非常に貧弱であるため、修正なしでは標準のPython開発ツールを使用できません。
DjangoとWeb2pyフレームワークはフルスタックフレームワークです。 つまり、フォームジェネレーターからテンプレートレイアウトやフォーム検証まで、必要なすべてのコードを提供し、特定のニーズに応じて物事を書くことができます。
ただし、FlaskやPyramidなどの非スタックフレームワークでは、フル機能のWebサイトを作成する場合、多くのコードと余分なビットを自分で追加する必要があります。 これには多くのスキルと時間がかかります。
Dash
Dashは、ダッシュボード用のリアクティブフレームワークを構築する特定のタスクのために完全に設計されています。 Dash by Plotlyは、Python開発者がJavascriptやフロントエンドのWeb開発を習得しなくてもインタラクティブなWebアプリを作成できる優れた方法です。 Dashは、Flask、Plotly.js、React、React Jsの上に構築されています。
フレームワークの異なるカテゴリに属するため、Dashと他のフレームワーク(上記)の比較はありません。 以下は、他のインタラクティブなダッシュボードフレームワーク(Jupiterダッシュボード、matplotlibなど)よりもダッシュを好む理由の一部です-
- Dashはボイラープラッターをほとんど必要としないため、わずか50行のコードで簡単な「hello world」Dashアプリを作成できます。
- Dashアプリ全体は、世界で最も優先される言語であるpython言語で記述されています。
- 独自のpythonコードで、ドロップダウン、テキスト入力、スライダー、グラフなどのダッシュインタラクティブコンポーネントをリアクティブダッシュ「コールバック」にバインドできます。
- Dashアプリの複雑なUIには、複数の入力、複数の出力、および他の入力に依存する入力を含めることができます。
- 同時に、複数のユーザーがDashアプリで作業できます。
- Reactで独自のDashコンポーネントを作成するために、dashはReact.jsを使用してコンポーネントをレンダリングし、プラグインシステムを備えています。
- DashのGraphコンポーネントはインタラクティブであるため、開発者または作成者は、グラフ上のポイントをクリック、ホバー、または選択することに応答するダッシュアプリを作成できます。
結論
多くの利用可能なpythonフレームワークから適切なフレームワークを選択することは、プロジェクトの種類、複雑さ、小規模またはエンタープライズレベルのプロジェクト、利用可能なコミュニティサポートの種類または利用可能なオンラインリソース、スケーラビリティ、セキュリティなどにのみ依存すると結論付けることができます
上記のPythonフレームワークはクラスで最高ですが、独自の利点と欠点があります(プロジェクトの要件によって異なります)。 したがって、あるタイプのフレームワークは、すべての種類のプロジェクトに適しているわけではありません。