本文へスキップ
BecomeCoder

Djangoコース · 第1章 はじめてのDjango · レッスン1

WebアプリとDjango ― リクエストからレスポンスまで

ローカル実施

導入

ブラウザで URL を開くと、なぜ画面が表示されるのでしょうか。その裏側には「リクエストを受け取って、レスポンスを返す」という単純な往復があります。Django はこの往復を、きれいに整理して書けるようにしてくれる道具です。

説明

Web サイトを開くときの流れは、こうなっています。

flowchart LR
  B["ブラウザ"] -->|"① リクエスト(GET /)"| S["Webサーバー / Django"]
  S -->|"② レスポンス(HTML)"| B
  1. ブラウザが「このURLをください」とリクエストを送る
  2. サーバー(Django)が中身を組み立ててレスポンス(多くは HTML)を返す
  3. ブラウザがそれを描画する

Django はこの「②の中身を作る」部分を担当します。そして Django は、役割を3つに分けて考える MTV という構成でできています。

flowchart LR
  U["リクエスト<br/>URL"] --> URLS["URLディスパッチャ<br/>urls.py"]
  URLS --> V["ビュー (View)<br/>処理を書く関数"]
  V --> M["モデル (Model)<br/>データベース"]
  V --> T["テンプレート (Template)<br/>画面の見た目"]
  T --> R["レスポンス<br/>HTML"]
  • モデル(Model)データベースを Python のクラスとして表す。データの保存・取得を担当。
  • テンプレート(Template) … 画面の見た目(HTML の雛形)。{{ 変数 }} を埋め込む。
  • ビュー(View) … リクエストを受けて、モデルからデータを取り、テンプレートに流し込んでレスポンスを返す「司令塔」。

多くのフレームワークで言う MVC とほぼ同じで、Django では「コントローラ」にあたる部分をビューが担い、URL の割り当ては urls.py が受け持ちます。

この章から、この流れを実際にコードで組み立てていきます。最初は一番小さな「ビュー」だけの Django から始めます。