webアプリのホームページには標準でhttp://localhost:8000/でアクセスします。ホームページや特定のページ(例: http://localhost:8000/test/) を開いたときに何を表示するかを設定するために、urlsとviewsとtemplatesを使用します。
設定方法
- Git bashを管理者として実行し、djangoのインストールされている仮想環境を起動します。
source env/Scripts/activate
- djangoプロジェクトフォルダ内の
urls.pyをエディタで開くと、初期状態で以下が記載されているはずです。path()の1つめのパラメータでurlを指定し、2つ目のパラメータで表示するページを指定しています。例えば、初期状態であれば、http://localhost:8000/admin/のURLにアクセスすると、admin.site.urlsが開かれます。
from django.contrib import admin
from django.urls import path
urlpatterns = [
path('admin/', admin.site.urls),
]
- 特定のページにアクセスすると、
views.pyで定義するシンプルなhtmlが開かれるように設定してみます。urls.pyを以下のように書き換えます。
from django.urls import path
from . import views
urlpatterns = [
path('', views.home),
path('test/', views.test)
]
urls.pyと同じディレクトリにviews.pyを作成し、以下の内容を書き込みます。ホームページにアクセスすると、「Home」と表示され、http://localhost:8000/test にアクセスすると「Test」と表示されるはずです。
from django.http import HttpResponse
def home(request):
return HttpResponse('Home')
def test(request):
return HttpResponse('<h1>Test</h1>')
views.pyのHttpResponse()の中に複雑なHTMLを書き込むのはカッコ悪いので、templatesに切り出します。djangoプロジェクトのmanage.pyのあるルートディレクトリにtemplatesというフォルダを作成します。そのフォルダの中に、home.htmlというファイルを作成し、以下のような適当なHTMLを書き込んでみます。
<h1>Home page html</h1>
上記のhome.htmlを参照するようにview.pyを以下のように書き換えます。
from django.http import HttpResponse
from django.shortcuts import render
def home(request):
return render(request, 'home.html')
def test(request):
return HttpResponse('<h1>Test</h1>')
最後に、settings.pyをエディタで開き、TEMPLATESのDIRSにtemplatesフォルダの存在を教えてあげます。これで各ページのHTMLを個別のHTMLファイルで定義できるようになりました。
'DIRS': ['templates'],