Djangoの処理方法がすごく勉強になった為、この記事で備忘録として記述しておきます。
Djangoはユーザーからのリクエストをどのように処理しているか?
Django の処理は一つのファイルがすべてのタスクを行うような処理をしていません。会社の組織と同じで、各部門に分かれて各専門の処理を行い、ユーザーのリクエストに対するレスポンスを返します。Djangoではその部門を「コンポーネント」と呼んでいます。コンポーネントは5つに分類されており、「ルーティング」「ビュー」「フォーム」「モデル」「テンプレート」が各分担して処理を連携しています。以下にDjango内で機能するコンポーネントについて紹介しておきます。(リクエストはコンポーネントではないですが、イメージしやすいように含めています)
コンポーネントの連携を把握したい
各コンポーネントがどのように連携するかを理解することで、WEBアプリ制作時に全体をイメージしやすくなります。
少し複雑ですが、連携についてメモを記載します。
①ルーティングは、2種類存在する。一つはアプリ選択用ルーティング、もう一つが、アプリ内ルーティングです。
・アプリ選択用ルーティング・・・リクエスト内容により適切なアプリケーションを判断し、選んだアプリケーション内にあるアプリ内ルーティングに値を引き渡す。
・アプリ内ルーティング・・・アプリケーション内にあるルーティングです。アプリ選択用ルーティングから受け取ったリクエストを所定のビューに引き渡す。
②アプリ内に複数のビュー(「ビュー」「フォーム」「モデル」を含む)が存在します。
③モデルはデータベースにSQLを発行し検索し、見つけたデータをビューに渡します。
④大まかな連携については、以下図にコンポーネント全体像を示しています。
Djangoのファイル構成について
Djangoのコンポーネントを実際のファイル&フォルダに置き換わった場合でも理解しておく必要があります。その為、Djangoのファイルフォルダー構成についても以下まとめておきます。
もう少し細かくフォルダ内についてもメモをしておきます。
プロジェクト設定のフォルダ内
アプリケーションのフォルダ内
まずはどんなファイルがあるのかを全体を通して確認しておくと、Djangoが扱いやすくなりますね。以下リンクも参考にしてください。