【Django】ルーティングによって複数ページの画面遷移を作成する方法

Web

こんにちは!ゆーや(@yuyamanm118712)です。

Djangoは、Webアプリケーションの開発を効率的に行うためのフレームワークです。Djangoを使うことで、複数ページにわたる画面遷移を簡単に実装することができます。

この記事では、Djangoのルーティングを利用して、複数のページ間で画面遷移を実現する方法について詳しく説明します。

ルーティングとは

ルーティングとは、URLとそのURLに対応する処理(ビュー関数)を紐づける仕組みです。Djangoでは、urls.pyファイルを使用してルーティングを設定します。

ゆーや
ゆーや

もし、この記事の内容が難しい場合は、以下の記事を見てみてください!

Djangoの基本的なルーティングについて説明しています!

複数ページの画面遷移を作成する

トップページとページ1~ページ4の計5ページの画面遷移を作成していきます!

urls.pyの編集

アプリフォルダ内のurls.pyを以下のように修正します。

from django.urls import path
from . import views

# アプリ名
app_name = "myapp"

# urlパターンを記述
urlpatterns = [
    path("", views.IndexView.as_view(), name='index'),
    path("page1/", views.Page1View.as_view(), name='page1'),
    path("page2/", views.Page2View.as_view(), name='page2'),
    path("page3/", views.Page3View.as_view(), name='page3'),
    path("page4/", views.Page4View.as_view(), name='page4'),
]
ゆーや
ゆーや

5画面分のurlpatternを追加します!

views.pyの編集

5画面分のViewクラスを作成しておきます!

from django.shortcuts import render

from django.views.generic.base import TemplateView

class IndexView(TemplateView):
    template_name = "index.html"

class Page1View(TemplateView):
    template_name = "page1.html"

class Page2View(TemplateView):
    template_name = "page2.html"

class Page3View(TemplateView):
    template_name = "page3.html"

class Page4View(TemplateView):
    template_name = "page4.html" 
ゆーや
ゆーや

urls.pyに記載した名前とずれがないようにしよう!

ベーステンプレートの作成

各ページ用のhtmlファイルを5ファイルと1つのベーステンプレート(base.html)を作成しておきます。

base.htmlを以下のように作成します。

<!DOCTYPE html>
<html>
    <head>
        <title>{% block title %}{% endblock %}</title>
    </head>
    <body>
        {% block contents %}{% endblock %}
    </body>
</html>
ゆーや
ゆーや

ベーステンプレートについて、わからない・詳しく知りたい方は以下の記事を見てください!

各ページ用のテンプレートを作成

各ファイルを以下のように作成します。

ファイル名は、index.html、page1.html、page2.html、page3.html、page4.htmlとします。

{% extends 'base.html' %}
{% block title%}トップページ{% endblock %}
{% block contents %}
<div>
    <h1>トップページ</h1>
    <a href="http://localhost:8000/">トップページへ</a>
    <a href="http://localhost:8000/page1">page1へ</a>
    <a href="http://localhost:8000/page2">page2へ</a>
    <a href="http://localhost:8000/page3">page3へ</a>
    <a href="http://localhost:8000/page4">page4へ</a>
</div>

{% endblock %}
ゆーや
ゆーや

例はindex.htmlの例だよ!

各ページでtitleとh1の中身を変えておこう!

動作確認

page1を押下

page2を押下

page3を押下

page4を押下

まとめ

Djangoを使って複数ページの画面遷移を作成する方法について説明しました。urls.pyでのルーティング設定、ビュー関数やクラスベースビューの作成、テンプレートでのリンク設定により、簡単に画面遷移を実現することができます。これにより、ユーザーが直感的に操作できるWebアプリケーションを構築することが可能です。今後のプロジェクトでも、この手法を活用して効率的に開発を進めてください。

ゆーや
ゆーや

この記事が皆さんのDjango開発に役立ったたらうれしいです!

困ったら…

Djangoの環境構築

Djangoプロジェクト・アプリの作成

コメント

タイトルとURLをコピーしました