トッカンソフトウェア

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 %}

			


継承先ファイルを表示させたときに、継承元ファイルも表示されます。




ページのトップへ戻る