教材の内容に関係のない質問や教材とは異なる環境・バージョンで進めている場合のエラーなど、教材に関係しない質問は推奨していないため回答できない場合がございます。
その場合、teratailなどの外部サイトを利用して質問することをおすすめします。教材の誤字脱字や追記・改善の要望は「文章の間違いや改善点の指摘」からお願いします。
このパートでは、Djangoの全体像について学習していきます。
実際に開発に取り掛かる前に
といった部分をざっくりと理解しておくことで開発を行う上で理解の助けとなります。
それでは、Djangoの全体像について学習していきましょう。
本パートではDjangoの全体像について理解することを目標とします。
Djangoは「プロジェクト」と「アプリケーション」という2階層で構成されています。
また、Djangoでは大きく以下の流れで開発を行います。
1.開発するシステムに対して1つのプロジェクトを作成する。
2.プロジェクト配下にアプリケーションを作成する。
3.アプリケーション内に実装したい機能をpythonでコーディングする。
なお、1つのプロジェクトに対して複数のアプリケーションを作成することができます。
アプリケーションをいくつ作成するかは開発者の自由ですが、基本的には開発しようとしているWebアプリケーションの機能ごとに作成するとよいでしょう。
例えば今回のblogアプリケーションの例だと以下のような機能毎にアプリケーションを作成していきます。
アプリケーション①:ブログ投稿機能
アプリケーション②:ユーザ認証機能
DjangoではMVTという設計思想が採用されています。
MVTはそれぞれ以下を表しています。
Copied!M・・・モデル(model)
V・・・ビュー(view)
T・・・テンプレート(template)
モデル、テンプレート、ビューの概要について解説していきます。
Djangoにおいてモデルとはデータベースに格納されるデータを定義する場所です。
ここで言っているデータの定義とは、テーブル名やどのような項目を持たせるか(ブログのタイトル、内容、カテゴリなど)といったことを定義します。
具体的にはmodels.py
というファイル内にWebアプリケーションで利用するデータのテーブルを定義します。
ビューではモデルを介してデータベースからデータを取得したり、テンプレートにデータを渡すなどDjangoで実行したい様々なロジックを定義します。
例えば以下のようなロジックを定義します。
テンプレートは簡単に言うとHTMLファイルのことを指します。
Djagnoではtemplatesというフォルダの中にhtmlファイル(***.html)を配置することでブラウザに表示する画面を設定します。
ここではDjango全体の仕組みを解説します。
DjangoにはMVT以外にもいくつかの構成要素があります。
ただし、最初からすべてを理解しようとすると初学者にとっては理解が難しい部分もあるかと思います。
そこで、まずはMVTという3つの視点でどのように処理が実行されているかを理解しましょう!
他の構成要素も含めたより詳しい解説は、次章以降で必要に応じて解説していきます。
ここでは、「Djangoブログサイトに用意されている新規登録ボタンを押してブログ記事を新規に登録する」という下図のようなケースでDjangoで行われる処理内容を簡単に解説します。
上図のようなブログ記事のデータ登録を実行した場合、Djangoでは以下のような流れで処理が実行されます。
1 .Web画面上に用意されているブログ記事の新規登録ボタンを押して新規登録処理のリクエスト(以降requestと記載)を投げます。
2. ビューでは新規登録のrequestを受け取り、ブログ記事を登録するためのモデル定義(models.py
)を呼び出します。
※データベースに対して何かしら操作(データの登録、変更、削除)を行う場合は、ビューからモデルの定義を呼び出す必要があります。
3. モデル(models.py
)を介してデータベースに対してデータ登録が実行されます。
4. データの登録処理結果(正常終了 or 異常終了)が返されます。
※ビュー内でモデルを介してデータベースに対して操作を行った場合、処理結果がビューに返ってきます。
※この例ではデータ登録処理なので、登録が正常に完了したか、異常終了したかといった結果が返されます。
5. ビュー内でデータ登録処理結果を判定し、処理結果に応じたテンプレートを呼び出します。
※上図の例ではデータ登録処理が正常終了すると、あらかじめ用意してある「データ登録完了用のテンプレート」を呼び出します。
6. Web画面にデータ登録完了の画面が表示されます。
このようにDjangoではMVT(モデル、ビュー、テンプレート)という3つの構成要素を中心に構成されています。
Djanogoの全体像を理解しないまま開発を始めてしまうと、今どの構成要素について開発を行っているかわからなくなり正しい開発ができません。
実際に開発行為を始める前にDjango全体像をしっかり理解しておきましょう。
この章ではDjanogの全体像について解説しました。
今一度、以下の点を理解しておきましょう!
以上でこの章は完了です。
お疲れさまでした!