私はこれをグーグルで探しましたが、Djangoが「アプリ」として定義するものに関してはまだ問題があります。
メインプロジェクトのモデルを使用している場合でも、サイトの機能ごとに新しいアプリを作成する必要がありますか?
新しいアプリをいつ分割するのか、「メインプロジェクト」または他のアプリと機能をいつ維持するのかについて、大まかな目安はありますか?
James Bennettには、Djangoで再利用可能なアプリを整理する方法に関するすばらしい スライドのセット があります。
Djangoアプリケーションを「アプリケーション」よりも再利用可能なモジュールまたはコンポーネントと考えることを好む。
これにより、特定の機能を相互にカプセル化および分離し、特定の「アプリ」をコミュニティ全体で共有する場合の再利用性と保守性を向上させることができます。
私の一般的なアプローチは、特定の機能または機能セットを「アプリ」にまとめて、それらを公開するかのようにすることです。ここで難しいのは、各バケットの大きさを把握することです。
私が使用する良いコツは、公開されたアプリがどのように使用されるかを想像することです。これにより、バケットを縮小し、その「目的」をより明確に定義することがしばしば促されます。
これが2008年9月6日に更新されたプレゼンテーションです。
DjangoCon 2008:Reusable Apps @ 7:5
スライドから撮影
これは独自のアプリケーションである必要がありますか?
- アプリのフォーカスとはまったく無関係ですか?
- それは私がやっていることに直交していますか?
- 他のサイトでも同様の機能が必要ですか?
それらのいずれかが「はい」の場合は?次に、別のアプリケーションに分割することをお勧めします。
私は、論理的に別個のモデルセットごとに新しいアプリケーションを作成する傾向があります。例えば。:
私が従うルールは、別のプロジェクトで機能を再利用したい場合、新しいアプリでなければならないということです。
プロジェクトのモデルを深く理解する必要がある場合は、おそらくモデルに固執する方がましです。
「アプリ」は多くの異なるものである可能性があり、それはすべて実際に味になります。たとえば、ブログを構築しているとしましょう。アプリはブログ全体にすることも、「admin」アプリ、すべてのパブリックビュー用の「site」アプリ、「rss」アプリ、「services」アプリを作成して、開発者がブログでインターフェイスできるようにすることもできます独自の方法など.
私は個人的にブログ自体をアプリにし、その中の機能を打ち出しました。ブログは他のWebサイトでかなり簡単に再利用できます。
Django=の良いところは、ディレクトリツリーのどのレベル内のmodels.pyファイルでも、Djangoモデルを含むファイルとして認識することです。 「アプリ」自体の中の小さな「サブアプリ」に機能を追加しても、それ以上難しくなることはありません。
私がウェブ上で見つけたこの質問に対する2つのベストアンサーは次のとおりです。
両方のソースは、次の状況で個別のアプリを作成する必要があることに同意します。