Python-web-development-libraries-choosing-a-better-framework

提供:Dev Guides
移動先:案内検索

より良いフレームワークの選択

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フレームワークはクラスで最高ですが、独自の利点と欠点があります(プロジェクトの要件によって異なります)。 したがって、あるタイプのフレームワークは、すべての種類のプロジェクトに適しているわけではありません。