Django テンプレート 使用 #1

 

{{DZ_TITLE}}

Djangoでテンプレートファイルを使う方法です。

手順

プログラムの中にHTMLを書くこともできますが、テンプレートでHTMLを別にした方がよりメンテナンス性が良いです。

以下の手順でテンプレート使用可能です。

本家のチュートリアルに合わせてpollsというアプリケーションを作成した例です。

1. サイトの作成

本家のチュートリアルに合わせてmysiteとしています。

django-admin startproject mysite
cd mysite

2. アプリケーション作成

pollsアプリケーションを作成する。

python manage.py startapp polls

3. settings.pyのINSTALLED_APPSにアプリケーションの情報を追加

mysite/settings.py

INSTALLED_APPS = [
    'polls.apps.PollsConfig',
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
]

‘polls.apps.PollsConfig’,mysite/settings.py に追加した1行です。
この1行が無いと、エラーが発生します。
Django エラー『TemplateDoesNotExist』対策 を参照。
mysite,pollsの部分は自分の作成したサイト名、アプリケーション名に置き換えてください。

4. site側のurls.pyを編集

本家のチュートリアルに合わせmysiteのurls.pyを編集

mysite/urls.py

from django.contrib import admin
from django.urls import include, path

urlpatterns = [
    path('polls/', include('polls.urls')),
    path('admin/', admin.site.urls),
]

from django.urls import include, path
にて include を定義。
path(‘polls/', include(‘polls.urls’)),
にてアプリケーション側のurls.pyを読込を追加。

5. アプリケーションのフォルダにurls.pyを作成

polls/urls.py を作成、編集する。

from django.urls import path

from . import views

app_name = 'polls'
urlpatterns = [
    path('', views.index, name='index'),
]

app_name = ‘polls’ はこの段階では必要ないのですが、テンプレートファイルで、テンプレートファイルを呼び出すときに必要になります。
本家のチュートリアルは長ったらしい分に、ちらっと書いてあるだけなのであとから見返して少し分かりずらいです。
アプリケーション名pollsは各自自分のアプリケーション名に置き換えてください。

参照 エラー NoReverseMatch at … ‘…’ is not a registered namespace 対策

6.views.pyを編集します

polls/views.py

from django.http import HttpResponse
from django.template import loader

def index(request):
    template = loader.get_template('polls/index.html')
    context = {
    }
    return HttpResponse(template.render(context, request))

7.Templateファイルを作ります。

polls/templates/polls/index.html

<b>Hello world</b>

8.サーバーの起動

python manage.py runserver 9999

10.ブラウザでテスト

http://127.0.0.1:9991/polls/ を開く。

関連記事

Django 目次- Python
Django 目次 - Python

おすすめ記事

Django Adminのパスワードを忘れたら? - Python
Django Adminのパスワードを忘れたら? - Python
Django Ajaxで非同期通信
Django Ajaxで非同期通信
Django チーター#1 - Python
Django チーター#1 - Python
Django 目次 - Python
Django 目次 - Python
Netlify、リダイレクト設定、Webserverレイアウト変更
Netlify、リダイレクト設定、Webserverレイアウト変更
プログラムは独学が良いか、スクールが良いか?【無償カウンセリング、無料体験あり】
プログラムは独学が良いか、スクールが良いか?【無償カウンセリング、無料体験あり】
Supponsered

外部サイト ↓プログラムを学んでみたい場合、学習コースなどもおすすめです!

Title : Photo by Steve Johnson on Unsplash

Comments

comments powered by Disqus