- Djangoの動く仕組みとは?
- ユーザーのリクエストはDjangoのファイルをどのように流れていくの?
本記事ではこのような疑問を解決します。
DjangoとはPythonによるWeb開発の中で1番の人気を誇るWebフレームワークのことです。
Djangoファイルがいくつか配置されていて、それぞれが連携することで優れた機能やスケールアウトを実現することができます。
一方で、Django開発をしていく上ではDjangoファイルがどのように連携しているのかを理解することが必要になります。
そこで今回はDjango初学者のためにDjangoの動く仕組みについて解説します。
本記事を読めばDjangoの動く仕組みはもちろんのこと、Webサービス全般の動く仕組みについても知ることができます。
Djangoの動く仕組みの全体像
DjangoだけでなくWebサービス全般は、
ユーザーのアクセス(リクエスト)を受け取って、
サーバーサイド(システム側)で何らかの処理をして、
最終的にユーザーの求める結果(レスポンス)を返すという流れになっています。
ではこのサーバーサイドの中はどのような仕組みで動いているのでしょうか?
Djangoにおけるサーバーサイドでは以下のような流れでシステムが動いています。
- ユーザーからリクエストを受けとる
- プロジェクトフォルダのurls.pyからアプリフォルダのurls.pyへつなげる
- アプリフォルダのurls.pyからviews.pyの対応した処理を呼び出す
- views.pyの処理に従って、models.pyにデータ取得を要求する
- データ取得後、templatesフォルダから対応したテンプレート(HTMLファイル)を呼び出す
- 呼び出したテンプレートに取得したデータをのせて、レスポンスを構築してユーザーへ返す
この全体像を図で表すと以下の通りです。
それでは流れを1つずつ確認していきましょう。
①ユーザーからリクエストを受けとる
まずユーザーはWebサイトにおいてリンクをクリックしたり情報を送信したりといったWeb上でのアクションを起こします。
それらのアクションをHTTPリクエストと呼び、プロジェクトフォルダのurls.pyにおいてHTTPリクエストを受け取ります。
②プロジェクトフォルダのurls.pyからアプリフォルダのurls.pyへつなげる
プロジェクトフォルダのurls.pyにおいてHTTPリクエストを受け取ると、指定したアプリフォルダのurls.pyへとリクエストをつなげます。
ここからアプリフォルダの中でのやり取りが始まります。
③アプリフォルダのurls.pyからviews.pyの対応した処理を呼び出す
アプリフォルダのurls.pyにおいてリクエストを受け取ると、そのままviews.pyへとリクエストを流します。
views.pyは様々な処理が記述されたファイルであり、受け取ったリクエストをもとにして対応する処理を実行していきます。
views.pyは「Djangoにおける頭脳」であり、サッカーのポジションでいうと司令塔の役割です。
④views.pyの処理に従って、models.pyにデータ取得を要求する
views.pyにおける処理の実行によって、まずはmodels.pyへデータの取得を依頼します。
models.pyはデータベースと連絡をして、views.pyから頼まれたデータを取得してきます。
⑤データ取得後、templatesフォルダから対応したテンプレート(HTMLファイル)を呼び出す
models.pyによるデータの取得後、次にviews.pyはテンプレートフォルダからリクエストに対応したテンプレートファイル(HTMLファイル)を呼び出します。
⑥呼び出したテンプレートに取得したデータをのせて、レスポンスを構築してユーザーへ返す
テンプレートを呼び出したら、取得したデータをそこにのせてレスポンスを構築します。
そして、そのレスポンスをユーザーに返し、ユーザー側のブラウザ画面でページが表示されます。
まとめ
以上がDjangoの動く仕組みになります。
最後にもう一度全体像を確認しておきましょう。
- ユーザーからリクエストを受けとる
- プロジェクトフォルダのurls.pyからアプリフォルダのurls.pyへつなげる
- アプリフォルダのurls.pyからviews.pyの対応した処理を呼び出す
- views.pyの処理に従って、models.pyにデータ取得を要求する
- データ取得後、templatesフォルダから対応したテンプレート(HTMLファイル)を呼び出す
- 呼び出したテンプレートに取得したデータをのせて、レスポンスを構築してユーザーへ返す
上記の流れを意識することでDjango学習の理解が大きく進むことでしょう。
本記事でDjangoの動く仕組みを押さえたら、コチラの記事でDjangoのファイルの基本操作を学習してみてください。
公式サイトよりもとっつきやすいDjangoチュートリアルはないの?Djangoアプリ開発における基本的なプログラミングの流れとは?Djangoファイルの基本的なコード・コマンドの操作とは? 本記事ではこのような疑問を解決します。Dj[…]
また、コチラの記事ではDjangoが学べるプログラミングスクールのおすすめ3選をご紹介しているので参考にしてみてください。
Djangoが学べるプログラミングスクールとは?おすすめのDjangoスクールとは? 本記事ではこのような疑問を解決します。DjangoはPythonで作られた中で1番メジャーなWebフレームワークです。みんなが普段利用するYouT[…]