プロジェクトの説明が非常に曖昧であるため、適切なアドバイスを与えるのは難しいかもしれません。「画像とテキスト プログラムのための 50 MB python 段階的間隔リコール評価システム」とは一体何なのでしょうか? :) -しかし、あなたがリストしているオプションの違いを概説しようとします:
Djangoは一種の統合ソリューションです。テンプレート システム、ORM、フォーム フレームワークなどが含まれています。
これらはすべて密接に結びついているため、Django は組み込みの管理インターフェイス、プラグイン可能なアプリなどの優れた機能を提供します。これらを構築する必要がないため、従来の Web サイトの開発を簡単に開始できます。自分自身のもの。たとえば、Django でブログ サイトを構築するには、データベース モデル、いくつかのルート、およびいくつかのビューを定義する必要があります。それだけです。組み込みの管理インターフェイスを使用してブログ エントリを追加および編集し、プラグ可能な認証モジュール。
しかし、もちろん代償もあります。これらすべての要素が確実に連携するようにするために、Django ではある程度、Django が提供するテクノロジを使用する必要があります。つまり、Django ORM を使用してモデルを定義し、Django テンプレートを使用してテンプレートを作成する必要があります。異なるビットを別のものに交換することはできますが、フレームワークの残りの部分ではうまく機能しないことは理解できます。つまり、SQLAlchemy などの別の ORM を使用してデータベースにアクセスできますが、そのようなモデルは Django の管理インターフェイスでは機能しません。
ある程度、Django はデータベース テーブルの特定の構造を想定しています (つまり、Python コードで定義されたモデルに基づいてこれらのテーブルを作成できると想定しています)。これにより、既存のデータベースでの作業がより困難になります。また、 SQL データベースが必要であると理解しています。
したがって、私の意見では、Django は、既存のプラグアブル アプリやその他の Django 機能を利用できる「典型的な」Django Web サイト (ニュース Web サイト用に作成されたもの) を構築するのに非常に適しています。
一方、 Pyramid では、データベース アクセスに特定のテクノロジを使用する必要はありません。実際、データベースを用意する必要はまったくありません。ファイル システムに格納されたデータを操作するアプリケーションを、 ZODB や分散 NoSQL ストレージなどのオブジェクト データベース。たぶん、いくつかの XML ファイルとたくさんの画像でさえ...あなたの想像力はあなたの限界です
SQL データベースを使用する場合、データベースが特定の構造を持つことは想定されていません。また、推奨される Pyramid の ORM である SQLAlchemy は、Django ORM よりも柔軟で強力であると考えられています。
特定のテンプレート ライブラリやフォーム ライブラリを使用する必要はないため、ニーズに最も適したものを選択できます。
Pyramid では、ほとんどの Web フレームワークの基礎となる機能であるルート マッピングを使用する必要さえありません。ルート マッピングに加えて、Pyramid は URL トラバーサルをサポートしています。これは、階層データ構造を操作するための非常に強力な方法です。
特定の技術を使用する必要はありませんが、Pyramid は典型的なユースケース用の適切なテンプレートをいくつか提供しています。
この柔軟性の代償は、変更なしで非常にカスタムな Pyramid Web サイトにプラグインできる既存の「アプリ」を見つけるのがより困難になる可能性があることです - ただし、Pyramid の優れた WSGI サポートはそれを活用します。
しばらく前にプロジェクトが repoze.bfg とマージされた後、Pylonsは現在 Pyramid と呼ばれています。
uWSGIは、Pyramid アプリケーション (または他の WSGI 準拠アプリケーション) を提供するためのアプリケーション/プロトコルのようなものです。
フラスコ- 使用したことはありません。他の誰かが概要を教えてくれるかもしれません。
つまり、要するに、Django と Pyramid のどちらを選択するかは、「自分のサイトで Django の組み込み機能をどれだけ使用できるか」という質問に要約されます。サードパーティのプラグ可能なアプリを多用する - 他のすべては Pyramid の方が優れています :)