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.だけのページが表示される。