Python Django テンプレート
今回はDjangoでテンプレートを使ってみます。HTMLをPythonファイルに書くのではなく、別ファイルに書いておき、それを連携させます。環境構築で作成したソースをベースにするので、先にそちらで環境を準備して下さい。
settings.pyにアプリケーションを登録
前回のアプリケーションの作成(python manage.py startapp)で作成したアプリケーションを prj/settings.py の INSTALLED_APPS に登録します。これを忘れると「TemplateDoesNotExist」エラーになります。
prj/settings.py
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'hello',
]
テンプレートファイルの作成
テンプレートファイルを格納するフォルダ(templates)をアプリケーションのフォルダの下に作成します。テンプレートとなるHTMLファイルを作成します。
hello/templates/test.html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>テストページ</title>
</head>
<body>
<h1>Hello World!!</h1>
</body>
</html>
環境構築に使用したviews.pyを修正します。
hello/views.py
from django.shortcuts import render
def index(request):
return render(request, "test.html")
上記までの修正ができたら、Webサーバを起動します。
python manage.py runserver
以下のURLにアクセスします。
http://127.0.0.1:8000/hello/
Htmlファイルが呼び出されることを確認します。
テンプレートファイルの継承
テンプレートファイルは継承することができます。新たに継承元ファイル(base.html)を作成し、継承させてみます。
hello/templates/base.html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>テストページ</title>
</head>
<body>
▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼
{% block section %} {% endblock %}
▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲
</body>
</html>
hello/templates/test.html
{% extends "base.html" %}
{% block section %}
<h1>Hello World!!!</h1>
{% endblock %}
継承先ファイルを表示させたときに、継承元ファイルも表示されます。
ページのトップへ戻る