私がこれまでに見つけた基本的なDjangoチュートリアルとドキュメントでは、アプリはプロジェクトのいくつかのスタンドアロン部分として扱われます。ただし、複雑なプロジェクトでそれらを一緒に使用するソリューションはまだ見つかりません。
いくつかのURLでサインアップできdomain/signup
、それはによって処理されusers.views.signup
ます。
- GETリクエストの場合
signup
はレンダリングしsignup.html
ます。 - POSTリクエストの場合、投稿されたデータを評価した後、
signup.html
メッセージを表示するか、新しいユーザーを登録し、ログインしてどこかにリダイレクトします。
domain/new_post
で処理される(またはdomain/user/new_post
)で新しい投稿を作成できますposts.views.new_post
。signup
ハンドラーと同様に機能します。
- GETリクエストの場合、レンダリングされ
new_post.html
ます。 - POSTリクエストの場合、投稿データを評価し
てから
new_post.html
、メッセージでレンダリングするか、新しい投稿を登録してどこかにリダイレクトします。
一般的なウェブサイトはいくつかのアプリで構成されており、いくつかのURLでリクエストに対して表示されるウェブページは、いくつかのアプリの機能を提供します。
たとえば、人気のあるソーシャルサイトにログインした後、ウォールに新しいエントリを作成し、ユーザーを検索できます(通常はより広い検索ですが、簡単にするために、ユーザーのみを扱います)。広告や友達もサイドバーにリストされています。
これらのパーツは、さまざまなアプリのさまざまなビューとテンプレートからどのように構築されていますか?
質問をより具体的にするには:
- あるURLで受信したGETリクエストの場合、user-search-form、new-post-form、friends-listを一緒に表示するにはどうすればよいですか?
プロジェクトレベルの共通ビューでこれを行う場合、アプリレベルのビューはどうでしょうか。タグはいくつかの「サブテンプレート」からテンプレートを作成するのに便利
だと読みましたが、含まれているテンプレートが取るさまざまな変数についてはどうでしょうか。{% include %}
- 同じURLから送信される可能性のあるユーザー検索関連のGETリクエストと新しい投稿関連のPOSTリクエストをどのように処理できますか?
(「URLから送信されたリクエスト」という表現は不適切な場合がありますが、ユーザーは特定のURLに表示されたページを操作して別のリクエストを送信できます。) - また、さまざまなコンポーネントを切り離しておく必要があります。
注:この質問はSOには一般的すぎる可能性があるため、詳細な回答の代わりに、さまざまなアプリを「実際に」一緒に使用する例を含むソースもいただければ幸いです。