Djangoを使ってみる (アプリケーションへのルーティング)

前回「Djangoを使ってみる (準備)」の続き。

プロジェクトにアプリケーションへのルーティングを定義する

プロジェクトのフォルダのurls.pyファイルに、アプリケーション「sample_app」へのルーティングを定義する。

下記の「/sample_project/sample_project/urls.py」に、

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

アプリケーション「sample_app」のURLパターンを定義する。

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

元々あった http://localhost:8000/admin/ に加えて、 http://localhost:8000/sample_app/ の定義を加えた。
そのsample_appのアプリケーション内のURLパターンは引数の sample_app.urls に定義する。

アプリケーションにURLパターンを定義する

プロジェクトの定義でアプリケーションまで誘導できたので、続いて「sample_app/」以下のURLに対してパターンを定義する。 今度はアプリケーション内の「/sample_project/sample_app/urls.py」を新規作成し、下記のパターンを定義する。

from django.conf.urls import url

from . import views

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

urlpatternsに正規表現で空を意味する「^$」を記述している。 それにより、「sample_app/」のリクエストに対してviewsで定義したindexをマッピングするようになる。 続いてそのviewsを行う。

アプリケーションにビューを定義する

urls.pyに記述したURLとビューのマッピングを、「/sample_project/sample_app/views.py」で行う。

from django.http import HttpResponse

def index(request):
    return HttpResponse("Hello, world.")

今回はプレーンテキストで「Hello, world.」を出力する。

ここまで記述出来たら http://localhost:8000/sample_app/ にアクセスすると、Hello, world.だけのページが表示される。
f:id:nave_kazu:20171031145612p:plain