エンジニアのサブルーチン

あまり注目されない組み込みのシステムエンジニアをやっています。エンジニア業界のこととか、勉強したこととかを不定期に更新していきます。

djangoでプロジェクトを立ち上げてからテンプレートで「HelloWorld」を出すまでの流れ

djangoを本格的に学び始めて2日ほどたった。入門書はだいたい読み終えたし、大まかに把握はした。よし、アプリを作ろう。

あれ?ここどうするんだっけ...

俺は基本のデータの流れすら、覚えられてなかった。まぁ、2日で完璧に覚えられるわけがない


ということで今回は個人用メモみたいなものになるけど、Pyhonの代表的WebフレームワークDjango」でプロジェクトファイルを作成してから

HelloWorldを出すまでの流れを出来るだけ詳しくかいていこうと思います!

...
とりあえず環境構築の過程は割愛します。出来上がったファイル構成はこう
f:id:code_sugar:20190818004822p:plain

フォルダの説明


urls.py
  Railsでいうところのルーティングファイル。 アクセス時のURLパターンを読み取り、パターン別にviews.pyの各クラス、もしくはメソッドに処理を流す

views.py
  Railsでいうところのコントローラ。urls.pyから流れて来たリクエストを処理する。

Templates
  htmlなどの保存場所。原則としてその更に下にファイルを置いてその中にhtmlフォルダを入れる。


今回のテーマの一番重要な3つのファイルとフォルダについて説明しました。

HelloWorldを表示する

TestAppファイル以下のurls.pyを以下のように編集する
f:id:code_sugar:20190818010850p:plain

include は指定したモジュールを呼び出す。今回はHelloWorldファイル内のurls.pyを呼び出している。
TestAppのurls.py内に全てのルーティングを設定できるが、アプリケーション別にurls.pyを作ってルーティングしないとまとまりが悪くなるので原則としてこの形をとる



そしてHelloWorldファイル内のurls.pyはこう
f:id:code_sugar:20190818013420p:plain

カレントディレクトリからviews.pyをimportしている。

ここでは、urlでhello/が呼び出されたらhelloメソッドを呼ぶようにルーティングをとっている。

そして処理はviews.pyに流れ
f:id:code_sugar:20190818013636p:plain

ここでrenderでTemplates内にある HelloWorldファイルの中にあるhello.htmlを呼び出してreturnしている

この一連の処理の流れを経て我々の元にHelloWorldが送られてくる
f:id:code_sugar:20190818013815p:plain

おはよう世界

...

注意するべきなのは、アプリ内でテンプレートを使用するときはsettingファイルをこう編集しないといけないf:id:code_sugar:20190818014012p:plain
これで使えるようになります。

...

個人的に気をつけなければいけないこと

とりあえず、from django.http import HttpResponse 書いとけ

テンプレートを使うなら from django.shortcuts import renderを書くのを忘れるな

というか、外部から何かを呼び出すならimportを忘れちゃだめ。何かを呼ぶ→importしないと って考えを常に持つこと。

...

以上です。頭の中を整理できました。 おやすみ世界