Djangoをインストールし簡易サーバーを起動するとロケットが飛んでいる初期画面が表示されますが、今回はテンプレートを通じて「Hello Django world !!」と表示させます。
コピペすれば5分もかからないで表示できると思います。
- 作成環境
- MacOS Catalina 10.15.7
- Python 3.8.5
1.ターミナルより
venv仮想環境にDjangoをインストール
$ python -m venv venv
$ . venv/bin/activate
$ pip install django
プロジェクトおよびアプリの作成
$ django-admin startproject config .
$ python manage.py startapp app
templatesフォルダと各ファイルの作成
$ mkdir templates
$ touch {templates/index.html,templates/base.html,app/urls.py}
2.各ファイルの作成・追記
config/settings.pyを以下の通り追記・修正します。
config/settings.py
# osモジュール追記
import os
INSTALLED_APPS = [
# 作成アプリを追記
'app.apps.AppConfig'
]
TEMPLATES = [
{
#テンプレートディレクトリパスを追記
'DIRS': [os.path.join(BASE_DIR, 'templates')],
},
]
# 言語コードとタイムゾーンを修正
LANGUAGE_CODE = 'ja'
TIME_ZONE = 'Asia/Tokyo'
ビュークラスを作成し表示させるテンプレート(index.html)を定義します。
app/views.py
# 追記
from django.views.generic import TemplateView
class IndexView(TemplateView):
template_name = 'index.html'
config/urls.pyとapp/urls.pyを紐付けます。
config/urls.py
# include追記
from django.urls import path,include
urlpatterns = [
# 追記
path('',include('app.urls'))
]
ルートディレクトリに表示させるビューを定義します。
app/urls.py
from django.urls import path
from . import views
urlpatterns = [
path('', views.IndexView.as_view(), name='Index'),
]
ベーステンプレートを記述します。
base.html
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>title</title>
{% block script %}{% endblock %}
</head>
<body>
{% block contents %}{% endblock %}
</body>
</html>
トップページに表示させる「Hello Django world !!」をテンプレートタグ内に記述します。
index.html
{% extends 'base.html' %}
{% block script %}
{% endblock %}
{% block contents %}
<h1>Hello Django world !!</h1>
{% endblock %}
3.サーバー起動
ターミナルより簡易サーバーを起動します。
$ python manage.py runserver