#DjangoでHTMLファイルを読み込んでみよう
Djangoでデータベース構築 (初学者がどこまで理解できるか(2)) の続きです。
今回は、ビュー画面にHTMLファイルの内容を表示させてみます。
##まずはビューページがクラス毎に表示されることを確認
DjangoでHello world (初学者がどこまで理解できるか(1)) で、
http://127.0.0.1:8000/myapplication
にアクセスした際に、"Hello world"を画面に表示させましたね。
今回は、http://127.0.0.1:8000/myapplication/detail
など、myapplication/
以下のURLにアクセスがあった際の、ビューページを表示させます。
#### practice/myapplication/views.py
from django.http import HttpResponse
#index関数にHTTPリクエストがあったら、"Hello, world."のHTTPレスポンスを返す
def index(request):
return HttpResponse("Hello, world.")
#detail関数にHTTPリクエストがあったら、"This is detail page."のHTTPレスポンスを返す
def detail(request):
return HttpResponse("This is detail page.")
#### practice/myapplication/urls.py
#path関数を呼び出し
from django.urls import path
from . import views
#URLに、「myapplication/」の後に何も指定しなければ、views.pyに記載の、index関数が呼び出される
#「myapplication/」の後に「detail」が指定されると、views.pyに記載の、detail関数が呼び出される
urlpatterns = [
path('', views.index, name='index'),
path('detail/', views.detail, name='detail')
]
開発サーバーを起動すると、http://127.0.0.1:8000/myapplication/detail
にアクセスし、http://127.0.0.1:8000/myapplication
と異なるビュー結果であることが確認できます。
##index.htmlを表示してみよう
ビューの表示の仕方はわかりました。
それでは続いて、HTMLファイルを表示するにはどうすればよいかを記載していきます。
#### practice/myapplication/
$ mkdir templates
$ mkdir myapplication
$ touch index.html
アプリケーションのフォルダに、templates
、myapplication
、index.html
を作成します。
views.pyに記載の内容と、htmlファイルの接続口が、templates
フォルダです。
<!-- practice/myapplication/templates/myapplication/index.html -->
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
</head>
<body>
<h1>This is text from HTML<h1>
</body>
</html>
index.html には、文字列が表示できるようにしておきましょう。
####practice/myapplication/views.py
from django.shortcuts import render
#templatesの内容を読み込んで、HttpResponseする、render関数を使用
def index(request):
return render(request, 'myapplication/index.html')
views.pyを、上記のように書き換えてみましょう。
この状態で開発サーバーを起動し、http://127.0.0.1:8000/myapplication
にアクセスして、index.htmlの内容が表示されればOKです。
##さいごに
次は、データベースの内容を、htmlに反映させたいと思います。