• 普通のウェブサイトと、Djangoの違いを解説【具体例で説明します】

    Djangoを学んでいく中で、結局Djangoって普通のウェブサイトと何が違うの?と思うこともあるかと思います。

    そこで今回は、普通のウェブサイトとDjangoの違いについて、具体例を使ってみていきましょう。

    普通のウェブサイト:ドーナツ屋、Django:ラーメン屋というイメージ

    どういうことだ?と思われる方も多いかもしれませんが、普通のウェブサイトはドーナツ屋、Djangoはラーメン屋というイメージを持つと、理解しやすいです。

    これから、それぞれの場合について具体的にみていきましょう。

    普通のウェブサイトの場合

    まずは、普通のウェブサイトです。

    普通のウェブサイトの場合、以下のようなイメージです。

    htmlファイルのやりとりのイメージ

    ここで、ブラウザがドーナツを頼む人。ウェブサーバーがドーナツ屋の店員と考えてみましょう。

    ドーナツ屋のイメージ

    ドーナツは注文を受けてから作るということは基本的にはありません。

    ですので、お店にならんでいるドーナツの中から、好みの商品を選び、欲しいドーナツを店員に伝えます。

    すると、ドーナツ屋の店員は、頼まれたドーナツを取ってそれを注文した人に渡します。

    つまり、ドーナツ屋の場合、注文する商品と、その対象となるドーナツが一対一の関係になります。

    まずはこのイメージを持ちましょう。

    Djangoの場合

    次はDjangoの場合です。

    Djangoの場合、基本的には以下のようなイメージです。

    djangoの全体像

    Djangoの場合は、上でお伝えした通りラーメン屋をイメージしてみましょう。

    ブラウザがラーメンを注文する人、サーバーが券売機というイメージです。

    そして、Djangoの場合はさらにurls.py、views.py、template、データベースがありますが、イメージとしてはこんな形です。

    • urls.py : ラーメンの注文を受けて、作るラーメンを指示する人
    • views.py : ラーメンを作るコック
    • template : ラーメンのどんぶりの器(大中小のサイズあり)
    • データベース : ラーメンを作るための食材が入っている場所

    これも図にしてみましょう。

    ラーメン屋のイメージ

    ラーメン屋とドーナツ屋の違いは、「注文を受けてから商品を作るのか、注文を受ける前から商品ができているのか」です。

    ラーメン屋の場合、事前にラーメンを作っているということはありえません。

    ですので、注文を受けてから商品を作ります。

    この時、注文をする人は好みに応じて色々な注文を出すことができます。

    例えば、「麺を大盛にしてほしい」、「野菜は少なめにして欲しい」といったイメージです。

    こういった細かい注文はドーナツ屋の場合はできないということを改めて頭に入れておきましょう。

    つまり、ラーメン屋の場合は注文と商品が一対一の関係になっているのではなく、注文に応じて中で何かをして(ラーメン屋の場合はラーメンを作って)、完成したものを注文した人に戻す。という形です。

    あらためて、普通のウェブサイトとDjangoの違い

    ここで、あらためて普通のウェブサイトとDjangoの違いについて考えていきましょう。

    普通のウェブサイトの場合、サーバーの中に入っているhtmlファイルをレスポンスとして返すだけです。

    つまり、htmlファイルの中身を変えることはできません。

    その一方で、Djangoの場合は、リクエストに応じて、使うhtmlファイルや、そのhtmlファイルに表示させるデータを柔軟に入れ替えることができるのです。

    *なお、ここではウェブサイトとDjangoの違い、という表現にしていますが、厳密にはウェブサイトとDjangoは比較の対象ではないこと、お含みおき下さい。

    普通のウェブサイトとDjangoの違いのまとめ

    (1) 普通のウェブサイトはドーナツ屋のイメージ

    (2) Djangoはラーメン屋のイメージ

    (3) つまり、一対一の関係か、内部で何か処理が行われるかの違い

    ~Django無料講義~のご案内

    Code for Djangoが、4時間超の無料Django講義をはじめました

    •  ・本を出版したCode for Djangoの
       製作者が作ったサイトです。
    •  ・Code for Djangoの内容も、
       動画で詳しく解説しています。
    •  ・動画は順次ふやしていきますので、
       ただで学び続けることが可能です。
    •  ・Djangoの効率的なスキルアップに、
       是非お役立て下さい。