との良好な成功を収めてきました - 世界で「50メガバイトパイソンが何であるかを間隔リコールの評価を卒業写真とテキストプログラムのためのシステム "??? :) - しかし私はあなたがリストしているオプションの違いを概説しようとします:
Djangoは、統合ソリューションの一種です - それは、テンプレートシステム、ORM、フォームフレームワークなどがあります。
Djangoは、すべてが密接に結びついているため、組み込みの管理インタフェースやプラグイン可能なアプリケーションなど、いくつかの細かい点を提供しています。あなた自身でそれらのものを構築する必要があります。たとえば、Djangoでブログサイトを構築するには、データベースモデル、ルート、いくつかのビューを定義する必要があります。組み込みの管理インターフェースを使用してブログエントリを追加および編集し、プラガブル認証モジュール。
Djangoは、Django ORMを使用してモデルを定義し、Djangoテンプレートを使用してテンプレートを書き込む必要があるため、DjangoはDjangoが提供するテクノロジをある程度使用する必要があります。 他のものとは別のビットを入れ替えることができますが、他のフレームワークではうまく動作しません - SQLAlchemyなどの別のORMを使用してデータベースにアクセスできますが、Djangoの管理者インタフェース。
Djangoはある程度、データベーステーブルの特定の構造(つまり、Pythonコードで定義されたモデルに基づいてこれらのテーブルを作成できることを期待しています)を期待しています。また、私はそれを理解しては、あなたはSQLデータベースを持っていることを期待しています。
私の意見では、Djangoは、既存のplugabbleアプリケーションやその他のDjango機能を利用できる「典型的な」Django Webサイト(ニュースサイト用に構築されたもの)を構築するための非常に良い選択です。一方、
ピラミッド、、データベースアクセスのための任意の特定の技術を使用する必要はありません - 実際には、それは、すべてのデータベースを持っているあなたを必要としない - あなたはデータで動作するアプリケーションを構築することができますZODBや分散型NoSQLストレージなどのオブジェクトデータベースに格納されています。たぶん一部のXMLファイルと画像の束...あなたの想像力はあなたの限界です
SQLデータベースを使用する場合、データベースには特定の構造があるとは限りません。また、推奨されるPyramidのORMは、Djangoよりも柔軟で強力です。ORM
特定のテンプレートライブラリやフォームライブラリを使用する必要がないため、必要に応じて最適なものを選択できます。
ピラミッドでは、ほとんどのWebフレームワークの基礎となるルートマッピングを使用する必要はありません。ルートマッピングに加えて、PyramidはURLトラバーサルをサポートしています。これは、階層データ構造を扱う非常に強力な方法です。
Pyramidでは、特定のテクノロジを使用する必要はありませんが、一般的な使用例についてはいくつかのテンプレートが用意されています。
Pyramidの優れたWSGIサポートがそれを活用するにもかかわらず、非常にカスタムのPyramidウェブサイトに変更することなく既存の「アプリ」を見つけるのは難しいかもしれません。
Pylonsは、プロジェクトが後でrepoze.bfgとマージされた後、Pyramidと呼ばれています。
uWSGIはピラミッドのアプリケーション(または他のWSGI準拠のアプリケーション)を提供するためにアプリケーション/プロトコルの詳細です
フラスコ - 多分他の誰かがあなたにいくつかの概要を与える、それを使ったことがありません。
要するに、DjangoとPyramidの選択肢は、「あなたのDjangoの組み込み機能を私のサイトでどれくらい使うことができるか」という質問に沸きます。自動管理者やサードパーティのプラグイン可能なアプリケーションを大量に使用する - その他はピラミッドの方が優れています:)
cgiでなければならない場合、 'mod_wsgi'などは、Webサーバー上で非常に薄いラッパー(スレッドプールなど)を提供します。 – ChristopheD