茨の道も一歩から

40代後半の田舎住まい無職。再就職先が決まるまでの茨の道を記録します。

Django入門:Corporateアプリの制作

はじめに

Corporateアプリの作成

cd djpj
python manage.py startapp corporate

ルートとビューの作成

  • ビュー(corporate\views.py)の編集

views.py

from django.shortcuts import render

def index(request):
    return render(request, 'corporate/index.html', {})

def next(request):
    return render(request, 'corporate/next.html', {})

def the3rd(request):
    return render(request, 'corporate/the3rd.html', {})
  • ルートファイル(corporate\urls.py)の作成

urls.py

from django.urls import path

from . import views

urlpatterns = [
    path('', views.index, name='index'),
    path('next/', views.next, name='next'),
    path('the3rd/', views.the3rd, name='the3rd'),
]

djpj/urls.py

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

urlpatterns = [
    path('hello/', include('hello.urls')),
    path('lp/', include('lp.urls')),
    path('corporate/', include('corporate.urls')),
    path('admin/', admin.site.urls),
]

アプリの登録

djpj/settings.py

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'lp.apps.LpConfig',
    'corporate.apps.CorporateConfig',
]

テンプレートの作成

  • templates\corporateフォルダの作成
  • テンプレートファイル(index.html)の作成
  • テンプレートファイル(next.html)の作成
  • テンプレートファイル(the3rd.html)の作成

corporate\templates\corporate\index.html

<!DOCTYPE html>
<html lang="ja">
    <head>
        <meta charset="utf-8">
        <title>Corporate | Django Template Test</title>
    </head>
    <body>
        <div class="container">
            <header>
                {% block header %}
                <h1>Corporate App</h1>
                {% endblock%}
            </header>
            {% block main %}
            <main>
                <p>This page is index page.</p>
                <a href="next/">Next</a>
            </main>
            {% endblock %}
            <footer>
                <smal>copyright&copy;2020 mabo102.</smal>
            </footer>
        </div>
    </body>
</html>

corporate\templates\corporate\next.html

{% extends 'corporate/index.html' %}

{% block main %}
            <main>
                <p>This page is Next django template test.</p>
                <a href="../">Home</a>
                <a href="../the3rd/">The 3rd</a>
            </main>
{% endblock %}

corporate\templates\corporate\the3rd.html

{% extends 'corporate/index.html' %}

{% block header %}
<h1>3rd Corporate App</h1>
{% endblock %}

{% block main %}
            <main>
                <p>This page is 3rd django template test.</p>
                <a href="../">Home</a>
            </main>
{% endblock %}

動作確認

python manage.py runserver

終わりに

  • 今回は、テンプレートファイルの拡張した使い方をご紹介しました。