はじめに

はじめまして!記事をご覧くださり、ありがとうございます!
26卒新入社員の松廣です!

私自身、文系学校出身でIT初学者という立場ですが、エンジニアという職種に魅力を感じ、インフラエンジニアとしてKDDIアイレットに入社いたしました。
入社してから毎日のように新しいIT用語やプログラミング言語に触れ、日々ドキドキしながら研修を受けている中、今回挑戦したのが「Django」を使用したPythonによるWebアプリケーション開発研修です。

研修が始まる前、IT初学者の私は、普段何気なく使っているSNSや通販サイトがどうやって動いているのかのイメージすら全くついていませんでした。そんな私が、研修を通じてWebアプリが動く裏側の仕組みを知り、パズルの点と点がつながったような深い感動を味わうことができたのです。

そこで今回は、私と同じようにIT初学者だけど、Webアプリってどうやって動いているの?と疑問に思っている方に向けて、Django研修での私の気づきや感動を、初学者ならではの視点から等身大でお届けします!

「Djangoって何?」「フレームワークっておいしいの?」という方にこそ、ぜひ最後まで読んでいただけると嬉しいです!

最初の壁:Djangoをインストールしたら、謎のファイルが大量発生

研修が始まり、まずはターミナルから pip install django を実行して、無事にDjangoのインストールが完了し、ここまでは順調でした。

さっそく教材の通りに以下のコマンドを叩いてプロジェクトを立ち上げます。

django-admin startproject myproject

そしてフォルダの中身を覗き込んだ瞬間、私は思わずフリーズしてしまいました。そこには、自分で作った覚えのない謎のファイルが一気に大量生成されていました。

manage.py

settings.py

urls.py

wsgi.py

画面に文字を表示させたいと考えていただけで、なぜ大量のファイルが存在するのかが理解できず、初学者の私は完全に圧倒されてしまいました。正直なところ、「こんなに複雑なら、Djangoなんてない方がもっとシンプルに書けて楽なんじゃないか…?」とさえ思ってしまったほどです。

しかし、講師の方の解説を聞き、実際に手を動かしていくうちに、この自動生成こそがDjangoの優しさなのだと気づくことになりました。

これらは決して意味もなく作られたわけではなく、Webアプリに必要な役割を、最初から綺麗に分担して管理しやすくするために用意された土台だと知りました。

では、このバラバラに見えるファイルたちがどのように連携して一つのWebアプリを動かしているのか、私が一番感動したDjangoの心臓部の仕組みを次にご紹介します!

パズルが解けた瞬間!Djangoの心臓「MVT」を料理に例えてみた

大量のファイルを前に頭を悩ませていた私ですが、講義が進むにつれて、DjangoにはMVT(Model – View – Template)という超重要な基本構造があることを知りました。

聞き慣れない単語に最初はまた身構えてしまいましたが、これを身近なレストランの役割分担に例えて整理してみたところ、一気に点と点がつながったのです。

  1. View(views.py):注文を受けるシェフ

Webアプリの中心人物です。ユーザーからのリクエスト(注文)を受け取り、「どの食材を使って、どう調理するか」というロジックをコントロールします。

  1. Template(HTMLファイル):盛り付けるお皿(ひな型)
    画面の見た目(デザイン)を担当する部分です。ただし、この時点ではまだ中身が空っぽ、あるいは文字の一部がくり抜かれた半完成のひな型に過ぎません。
  2. Model(models.py):食材が入った冷蔵庫
    データベースとのやり取りを担当し、必要なデータを保管・取り出す役割を持っています。

なぜファイルを分けるの?

最初は1つのファイルに全部書けば楽だと思っていましたが、これらを綺麗に分離するのには役割をしっかりと分担させるというDjangoの明確な意図がありました。

もしViewの中にデザイン(HTML)まで直接書き込んでしまうと、コードが文字だらけになってしまい、修正するのも一苦労です。

そこで、Djangoではロジック(View)とデザイン(Template)のファイルを完全に切り離します。
そして、View(シェフ)が作ったデータ(料理)を、Template(お皿)の決まった位置(くり抜かれた部分)に後からガッチャンコとはめ込んで、世界に一つだけの完成された画面を作り出すという仕組みになっているのです。

この仕組みを理解した瞬間、私の頭の中でバラバラだったファイルたちが一列につながり、「なるほど、だから自動でファイルがたくさん作られたのか」と、まるでパズルが解けたような爽快感を味わうことができました。

おわりに

IT初学者の私にとって、Djangoの研修は大冒険のような時間でした。
最初は大量のファイルに圧倒されて頭が真っ白になりましたが、仕組みが分かってからは、普段見ているすべてのWebサイトに対して「ここはきっと、あのファイルがこういう役割をして動いているんだろうな……」と、考える機会が以前よりも増えるようになりました!

もちろん、まだ何も見ずに一から完璧に開発できるわけではありません。
ですが、今回裏側の仕組みという大きな土台を理解できたことは、私にとって大きな自信になりました。

これからも自律自走の精神を大切に、一つずつできることを着実に増やして、早く一人前のエンジニアとして活躍できるよう頑張ります!

最後まで読んでくださり、ありがとうございました!