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'],