こんにちは!ゆーや(@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開発に役立ったたらうれしいです!
コメント