Djangoの全体像をざっっっくり理解してみた
目的
PythonでWebアプリを開発する際に使われるフレームワークの1つであるDjangoを学習しているのですが、色々複雑なので軽く全体像を把握しようかなーと。
Djangoとは
Django(ジャンゴ)は、Pythonで実装されたWebアプリケーションフレームワーク。MVCデザインパターンに緩やかに従う。もともとはアメリカ合衆国カンザス州ローレンスにあるWorld Company[8]のために、ニュース系のサイトを管理する目的で開発され、2005年7月にBSD Licenseで公式にリリースされた。フレームワークはジプシー・スウィングのギタリストであるジャンゴ・ラインハルトにちなんで命名された。
まぁよくわからんけど第一段階としては
- 「ディジャンゴ」じゃなく「ジャンゴ」って読むんやなぁ
- Webアプリ作る時に使うものなんやなぁ
くらいがわかっとけばいいんですかね。
で、次にDjangoを理解するために大事なのが「MTVモデル」というもの。
MTVモデルとは
- M:「Model」
- T:「Template」
- V:「View」
の略で、上記3つの頭文字をとったもの。
どうやらアプリ開発する上での役割を3つにした考え方らしい。
Model
データベース、つまり、データが格納されているところの役割。
例えばインスタやと、各ユーザーのIDやパスワード、各ユーザーが投稿した内容などがデータに値する。
Template
見た目の部分をつくる役割。
簡単にいうとhtmlファイルとかcssファイルとか。
View
「Model」から必要なデータを受け取って「Template」になんやかんやうまいこと組み込んで画面を表示したりする役割。
ざっくりしすぎな気もするが、難しいところはおいおいわかっていけばいいかぁぐらいの軽い気持ちで。笑
まぁとりあえずViewが中心になってうまいこと動いてそう。
中身の処理を図で表してみた
もうちょっとだけDjangoの流れを調べていくと、
少しややこしかったんで図にまとめてみた。
Modelがmodels.py、Templateがtemplatesフォルダにまとめられているhtmlファイル、Viewがviews.pyに対応するみたい。
さらにurls.pyというファイルも必要みたいなので、とりあえずファイル毎の役割をまとめてみる。
urls.py:リクエストされたURLに応じてどのような処理を実行するのかを記載。
models.py:データベースを作成、編集、削除したりなど、データをどのように扱うかを記載。
views.py:データベースから必要なModelを受け取って、表示するtemplateにうまいこと組み込んで表示する処理を記載。
流れ
- urls.pyでURLを受け取る。
- 受け取ったURLに応じた処理を実行する。(「views.pyの〇〇の部分見に行って〜」的な処理)
- views.pyで画面に表示するために必要なデータをmodels.pyから受け取ったり、受け取ったデータとtemplate(htmlファイル)をうまいことまとめる。
- うまいことまとめた画面を表示する。
てきな感じなんかな。
わかっているような気がしつつも、全然上手にまとめられていない。。。
もっと理解が深まればよりわかりやすく書けるんかな。
またDjangoについて詳しくなればこの記事に追記やら編集やらを加えていこうと思う。