Django テンプレート 使用 #1
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 Adminのパスワードを忘れたら? - Python
SEO対策として、セキュリティー対策ソフトでチェック
Django チーター#1 - Python
Django Ajaxで非同期通信
Django 目次 - Python
Netlify、リダイレクト設定、Webserverレイアウト変更
Supponsered
外部サイト ↓プログラムを学んでみたい場合、学習コースなどもおすすめです!
Title : Photo by Steve Johnson on Unsplash