Edited at

【Django】Hello World


概要

DjangoでHello Worldを表示する。

最小構成での実装を行います。


環境設定


  • OS X

  • python3

  • Django


実装

1 . プロジェクトを作成する。

プロジェクト名をtutorialとし、プロジェクトの雛形を作る。


プロジェクトの雛形を生成

django-admin startproject [プロジェクト名]



プロジェクトの雛形を生成

django-admin startproject tutorial



実行結果

tutorial

|
├── manage.py
|
└── tutorial
├── __init__.py
├── settings.py
├── urls.py
└── wsgi.py

2 . アプリを作成する。

Djangoでは、1つのプロジェクトに対し、複数のアプリを作成する。

アプリ名をhelloとし、アプリの雛形を作成する。


アプリの雛形を生成

python manage.py startapp [アプリ名]



アプリの雛形を生成

python manage.py startapp hello



実行結果

tutorial

|
├── manage.py
|
├── tutorial
| ├── __init__.py
| ├── settings.py
| ├── urls.py
| └── wsgi.py
|
└── hello
├── __init__.py
├── admin.py
├── apps.py
├── migrations
│ └── __init__.py
├── models.py
├── tests.py
└── views.py

3 . プロジェクトのルーティングを設定する。

URLのルーティングは、2段階で行う。

はじめに、プロジェクトから各アプリへのルーティングを設定する。

tutorial/urls.py から hello/urls.py にルーティングする。


tutorial/urls.py

- from django.conf.urls import url

+ from django.conf.urls import url, include
from django.contrib import admin

urlpatterns = [
url(r'^admin/', admin.site.urls),
+ url(r'^hello/', include('hello.urls')),
]


4 . アプリのルーティングを設定する。

views.pyの各メソッドへのルーティングを設定する。

hello/urls.py を作成し、hello/viewsindex メソッドを呼び出す。


hello/urls.py

from django.conf.urls import url

from . import views

urlpatterns = [
url(r'^world$', views.index),
]


5 . hello/views.pyindex メソッドで、Hello Worldを返す。


hello/views.py

  from __future__ import unicode_literals

from django.db import models
+ from django.http import HttpResponse

+ def index(request):
+ return HttpResponse("Hello World")

6 . サーバを起動する。


サーバの起動

python manage.py runserver


7 . 127.0.0.1:8000/hello/world で確認する。


動作確認

open 127.0.0.1:8000/hello/world



解説

① ユーザが、/hello/worldにリクエストする。

② APサーバは、プロジェクトの urls.py である tutorial/urls.py を確認する。

urlpatternsより、ルーティング先を hello/urls.pyに決定 。

④ アプリの urls.py である hello/urls.py を確認する。

urlpatternsより、ルーティング先を hello/views.py の index メソッド決定。

hello/views.py の index メソッドより、Hello World を返す。

alt


まとめ

最小構成でHello Worldを表示しました。

シーケンス図より、処理順を説明しました。

間違い・指摘等があればコメントお願いします。


参考文献