JetBrains PyCharmIDEで新しいDjango/Pythonプロジェクトを作成しようとしています。ただし、ソフトウェア名を入力すると、「アプリをプロジェクトと同じように呼び出すことはできません」と通知されます。
Djangoのプロジェクトとアプリケーションの違いを完全に理解しようとして、Facebook、Gmail、YouTubeなどの既知の複合Webサイトのアプリケーションとプロジェクトの違いを誰かに示してもらいたいと思います。
ありがとうございました!
Facebookでの私の試み:
facebook
users
messages
notifications
posts
...
基本的に、要点は、アプリがプロジェクト全体の特定の部分を表すということです。さらに、アプリは同様のプロジェクトに「プラグイン可能」にすることができます。保守可能であるためには、アプリは他のアプリの目的とは異なる独自の目的を持っている必要があります。
優れた「Djangoの2つのスクープ」 book で、著者はJamesBennettを引用しています。
優れたDjangoアプリを作成して維持する技術は、ダグラス・マキルロイによると、切り捨てられたUnix哲学に従う必要があるということです。
再び著者は述べています:
本質的に、各アプリはそのタスクにしっかりと焦点を合わせる必要があります。アプリを適度な長さの1つの文で説明できない場合、または「and」を複数回言う必要がある場合は、アプリが大きすぎるため、分割する必要があることを意味している可能性があります。
2014年12月19日更新:
Django 1.7 この「プロジェクトとアプリケーション」の説明 は間違いなく読む価値があります。
2017年12月21日更新:
Django 1.10リンク ここ 。
ドキュメントのチュートリアルから:
プロジェクトとアプリプロジェクトとアプリの違いは何ですか?アプリは、ウェブログシステム、公記録のデータベース、単純な投票アプリなど、何かを実行するWebアプリケーションです。プロジェクトは、特定のWebサイトの構成とアプリのコレクションです。プロジェクトには複数のアプリを含めることができます。アプリは複数のプロジェクトに含めることができます。
https://docs.djangoproject.com/en/dev/intro/tutorial01/#creating-models
それをyoutubeと比較すると、youtubeサイト全体が1つの大きなプロジェクトになり、ビデオ検索、メッセージング、プロファイル/チャネル作成などのアプリに機能が分割されます...構造が単純な場合は、さまざまな部分を1か所にまとめることができます。それはあなた次第です。私は、物事を分割し始めることだけを好みます。
アプリケーションは、Webサイトで特定のタスクを実行できるものであれば何でもかまいません。例:銀行ドメイン->ローン申請、クレジット/デビットカード申請など。
プロジェクトは、特定のWebサイトのアプリケーションのコレクションです。例:銀行のソフトウェア、Gmail、Facebookなど。
参照: https://consideratecode.com/2017/12/29/Django-app-project-site/
公式Djangoドキュメント :
1)アプリケーションは、ブログシステムなど、何かを実行するWebアプリケーションです。
2)プロジェクトは、特定のWebサイトの構成とアプリケーションのコレクションです。
3)プロジェクトには複数のアプリケーションを含めることができます。アプリケーションは複数のプロジェクトに含めることができます。