Python | Django | テンプレートの使い方

公開日:2021/6/18

Pythonには,DjangoというWebアプリケーションフレームワークがある.フレームワークのため,Djangoを利用するとWebアプリを通常よりも短時間で開発することが可能になる.

Djangoにおけるテンプレート(template)の基本的な使い方を以下に記す.なお,プロジェクトおよびアプリケーション(アプリ)の作成後,テンプレートの使い方を記す.

◆実施環境

Python 3.8.8
Django 3.2.3

■テンプレートの使い方

新しくフォルダ"mytemptest"を作成し,VS Codeから当該フォルダを開く.

フォルダを開くを以下のようになる.

“View"をクリックし,"Terminal"を開く.

赤枠の下矢印をクリックし,"Command Prompt"をクリックする."conda activate djangoenv"を入力し,仮想環境へ移動する.

Djangoプロジェクトを作成するため,"django-admin startproject プロジェクト名"を入力する.プロジェクト名を"tmp_project"としたので,"django-admin startproject tmp_project"を入力した.プロジェクトが作成されると以下のようになる.

“cd tmp_project"でプロジェクト内に移動し,プロジェクトにアプリを作成するため,"python manage.py startapp アプリ名"を入力する.アプリ名を"tmp_app"としたので,"python manage.py startapp tmp_app"を入力した.アプリが作成されると以下のようになる.

“tmp_app"にフォルダである"templates"を作成し,当該フォルダ内に"index.html"を作成する.作成後,以下のようになる.

“tmp_app/templates/index.html"に以下コードを記述する.

<html> 
<head> 
<title>This is how to use templates</title> 
</head> 
<body> 
<h1>Hello World!!</h1> 
</body> 
</html>

“tmp_app/views.py"を以下のように編集する.

from django.shortcuts import render

def index(request):
  return render(request,'index.html')

“tmp_app"に"urls.py"を作成する.

“tmp_app/urls.py"に以下コードを記述する.

from django.urls import path 
from . import views 

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

“tmp_project/urls.py"を以下のように編集する.

from django.contrib import admin 
from django.urls import path, include # 追記箇所 
urlpatterns = [ 
  path('admin/', admin.site.urls),
  path('template_app/',include('tmp_app.urls')), # 追記箇所 
]

“tmp_project/settings.py"の"INSTALLED_APPS"を以下のように編集する.

INSTALLED_APPS = [
  'django.contrib.admin',
  'django.contrib.auth',
  'django.contrib.contenttypes',
  'django.contrib.sessions',
  'django.contrib.messages',
  'django.contrib.staticfiles',
  'tmp_app', # 追記箇所
]

tmp_projectのディレクトリで,"python manage.py migrate"を実行する.以下のように出力されれば成功.

Operations to perform:
  Apply all migrations: admin, auth, contenttypes, sessions
Running migrations:
  Applying contenttypes.0001_initial... OK 
  Applying auth.0001_initial... OK
  Applying admin.0001_initial... OK
  Applying admin.0002_logentry_remove_auto_add... OK
  Applying admin.0003_logentry_add_action_flag_choices... OK
  Applying contenttypes.0002_remove_content_type_name... OK
  Applying auth.0002_alter_permission_name_max_length... OK
  Applying auth.0003_alter_user_email_max_length... OK
  Applying auth.0004_alter_user_username_opts... OK
  Applying auth.0005_alter_user_last_login_null... OK
  Applying auth.0006_require_contenttypes_0002... OK
  Applying auth.0007_alter_validators_add_error_messages... OK
  Applying auth.0008_alter_user_username_max_length... OK
  Applying auth.0009_alter_user_last_name_max_length... OK
  Applying auth.0010_alter_group_name_max_length... OK
  Applying auth.0011_update_proxy_permissions... OK
  Applying auth.0012_alter_user_first_name_max_length... OK
  Applying sessions.0001_initial... OK

“tmp_project"のディレクトリで以下のように"python manage.py runserver"を入力し,実行をする.以下が出力されるので,"http://127.0.0.1:8000/"をクリックする.

System check identified no issues (0 silenced).
June 18, 2021 - 14:56:06
Django version 3.2.3, using settings 'tmp_project.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CTRL-BREAK.

ブラウザに以下が出力される.

URLに"http://127.0.0.1:8000/template_app/"を入力すると,"tmp_app/templates/index.html"に記述した内容が,以下のようにブラウザに出力される.

以上