カテゴリー
サインイン 新規登録

間違いや改善の指摘

内容の技術的な誤り・誤字脱字やミスのご報告・解説やトピックの追記/改善のご要望は教材をさらに良くしていく上でとても貴重なご意見になります。

少しでも気になった点があれば、ご遠慮なく投稿いただけると幸いです🙏

実際には誤りではなく勘違いであっても、ご報告いただけることで教材のブラッシュアップにつながります。

質問ポリシー①

教材受講者みなさんのスムーズな問題解決のために、心がけていただきたいことがあります。

教材の内容に関する質問を投稿しましょう

教材の内容に関係のない質問や教材とは異なる環境・バージョンで進めている場合のエラーなど、教材に関係しない質問は推奨していないため回答できない場合がございます。

その場合、teratailなどの外部サイトを利用して質問することをおすすめします。教材の誤字脱字や追記・改善の要望は「文章の間違いや改善点の指摘」からお願いします。

1-1

Djangoの全体像

このパートでは、Djangoの全体像について学習していきます。
実際に開発に取り掛かる前に

  • Djangoがどのような構成になっているか?
  • どのような要素で構成されているか?

といった部分をざっくりと理解しておくことで開発を行う上で理解の助けとなります。

それでは、Djangoの全体像について学習していきましょう。

本パートの目標

本パートではDjangoの全体像について理解することを目標とします。

本章の構成

  1. Djangoの基本構成
  2. Djangoの設計思想について
  3. Djangoの全体の仕組み
  4. ポイント整理

1. Djangoの基本構成

Djangoは「プロジェクト」と「アプリケーション」という2階層で構成されています。
また、Djangoでは大きく以下の流れで開発を行います。

1.開発するシステムに対して1つのプロジェクトを作成する。
2.プロジェクト配下にアプリケーションを作成する。
3.アプリケーション内に実装したい機能をpythonでコーディングする。

Image from Gyazo

なお、1つのプロジェクトに対して複数のアプリケーションを作成することができます。

アプリケーションをいくつ作成するかは開発者の自由ですが、基本的には開発しようとしているWebアプリケーションの機能ごとに作成するとよいでしょう。

例えば今回のblogアプリケーションの例だと以下のような機能毎にアプリケーションを作成していきます。

アプリケーション①:ブログ投稿機能
アプリケーション②:ユーザ認証機能

2. Djangoの設計思想について

DjangoではMVTという設計思想が採用されています。
MVTはそれぞれ以下を表しています。

Copied!
M・・・モデル(model) V・・・ビュー(view) T・・・テンプレート(template)

モデル、テンプレート、ビューの概要について解説していきます。

モデル(model)

Djangoにおいてモデルとはデータベースに格納されるデータを定義する場所です。
ここで言っているデータの定義とは、テーブル名やどのような項目を持たせるか(ブログのタイトル、内容、カテゴリなど)といったことを定義します。

具体的にはmodels.pyというファイル内にWebアプリケーションで利用するデータのテーブルを定義します。

ビュー(view)

ビューではモデルを介してデータベースからデータを取得したり、テンプレートにデータを渡すなどDjangoで実行したい様々なロジックを定義します。
例えば以下のようなロジックを定義します。

  • ブログ記事の一覧データを取得して一覧表示用のテンプレート(htmlファイル)にデータを渡す。
  • Web画面からブログ記事の新規データ登録依頼を受け取り、データベースにデータ登録処理を投げる。

テンプレート(template)

テンプレートは簡単に言うとHTMLファイルのことを指します。
Djagnoではtemplatesというフォルダの中にhtmlファイル(***.html)を配置することでブラウザに表示する画面を設定します。

3. Djangoの全体の仕組み

ここではDjango全体の仕組みを解説します。

DjangoにはMVT以外にもいくつかの構成要素があります。
ただし、最初からすべてを理解しようとすると初学者にとっては理解が難しい部分もあるかと思います。
そこで、まずはMVTという3つの視点でどのように処理が実行されているかを理解しましょう!
他の構成要素も含めたより詳しい解説は、次章以降で必要に応じて解説していきます。

ここでは、「Djangoブログサイトに用意されている新規登録ボタンを押してブログ記事を新規に登録する」という下図のようなケースでDjangoで行われる処理内容を簡単に解説します。

Image from Gyazo

上図のようなブログ記事のデータ登録を実行した場合、Djangoでは以下のような流れで処理が実行されます。

Image from Gyazo

1 .Web画面上に用意されているブログ記事の新規登録ボタンを押して新規登録処理のリクエスト(以降requestと記載)を投げます。
2. ビューでは新規登録のrequestを受け取り、ブログ記事を登録するためのモデル定義(models.py)を呼び出します。
 ※データベースに対して何かしら操作(データの登録、変更、削除)を行う場合は、ビューからモデルの定義を呼び出す必要があります。
3. モデル(models.py)を介してデータベースに対してデータ登録が実行されます。
4. データの登録処理結果(正常終了 or 異常終了)が返されます。
 ※ビュー内でモデルを介してデータベースに対して操作を行った場合、処理結果がビューに返ってきます。
 ※この例ではデータ登録処理なので、登録が正常に完了したか、異常終了したかといった結果が返されます。
5. ビュー内でデータ登録処理結果を判定し、処理結果に応じたテンプレートを呼び出します。
 ※上図の例ではデータ登録処理が正常終了すると、あらかじめ用意してある「データ登録完了用のテンプレート」を呼び出します。
6. Web画面にデータ登録完了の画面が表示されます。

このようにDjangoではMVT(モデル、ビュー、テンプレート)という3つの構成要素を中心に構成されています。
Djanogoの全体像を理解しないまま開発を始めてしまうと、今どの構成要素について開発を行っているかわからなくなり正しい開発ができません。

実際に開発行為を始める前にDjango全体像をしっかり理解しておきましょう。

4. ポイント整理

この章ではDjanogの全体像について解説しました。
今一度、以下の点を理解しておきましょう!

  • Djangoは「プロジェクト」と「アプリケーション」という2階層で構成されている。
  • 開発するシステムに対して1つのプロジェクトを作成する。
  • プロジェクト配下にアプリケーションを作成する。(複数作成可能)
  • DjangoはMVT(モデル、ビュー、テンプレート)という設計思想で構成されている。

以上でこの章は完了です。

お疲れさまでした!

現在のパート (0)
全パート (3)
みんなで助け合おう!
現在のパートのディスカッション 全0件