スポンサーリンク

【Django】ボタンクリックでPage遷移を行う方法ご紹介。〜 サンプルアプリ作成 〜

Django
スポンサーリンク

今回の記事はPythonのWebアプリ用フレームワーク、Djangoのプロジェクトでボタンクリックでページ遷移を行う方法をご紹介する初心者用の記事です。Django初心者の方でアプリ内のボタンでページを遷移する方法を探している方は是非参考にしてみてください。

スポンサーリンク

Djangoプロジェクト作成

まずは、DjangoをPythonにインストールします。すでにDjangoをインストール済みの方は飛ばしてください。

python venv -m env
cd env/Scripts
activate
cd ../..
pip install django

次にDjangoプロジェクトを展開するフォルダで下記のコマンドを実行します。

django-admin startproject sample
↓
cd sample
↓
python manage.py startapp app

Djangoプロジェクト設定

次に「settings.py」を書きのように修正します。

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'ap',##ココ追加
]

.................

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [
            os.path.join(BASE_DIR,'templates')##ココ追加
        ],
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',
            ],
        },
    },
]

.................

STATIC_URL = '/static/'##ここはもともとあるのでその下の一番したに下記を記述

##ココ追加
STATICFILES_DIRS = (
    os.path.join(BASE_DIR, "static"),
)
##

次に2つの「urls.py」(全体側とアプリ側両方)を書きのように修正します。

from django.contrib import admin
from django.urls import path,include ##includeの記述追加

urlpatterns = [
    path('admin/', admin.site.urls),
    path('',include('app.urls')),##ココ追加
]
from django.urls import path
from . import views

urlpatterns = [
    path('', views.index_show, name='index_show'),
    path('templates/', views.move_to_gamepage, name='move_to_gamepage'),
]##ここは適宜追加する都度uploadします。

ちなみにのappフォルダの「urls.py」はないため、自分でファイルを作成する必要があります。

templetasフォルダも自分で追加します。

Djangoプロジェクト内のボタンクリックでPage遷移

ボタンクリックでページ遷移した後に表示する遷移先ページをtemplatesフォルダに追加します。

start_button.png
<!DOCTYPE html>
{% load static %}
<html lang="ja">
<head>
    <meta charset="utf-8" />
    <title>sampleゲーム</title>
</head>

<body>
    <table>
        <td>player1</td>
        <td>player2</td>
        <td>player3</td>
    </table>
    <br/>
    <form action="{% url 'move_to_gamepage' %}" method="post">
        {% csrf_token %}
        <input type="image" src="{% static "app/button/start_button.png" %}" name="start_button"> 
    </form>
</body>
</html>
<h2>遷移成功</h2>

そして最後にviews.pyにページの表示とクリック先のページの表示を行う関数を記述する。

from django.shortcuts import render

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

def move_to_gamepage(request):
    return render(request, 'gamepage.html')

ここまで行えば一度localserverで起動させて確認!!
アクセス先は下記です。
http://127.0.0.1:8000 ←スタート画面index.htmlに
http://127.0.0.1:8000/templates/ ←まだ白紙のgamepage.htmlに

下記表示されるはずの画面

index.html

ボタンをクリックすると無事画面が切り替わると思います。

では今回の記事は以上です。ほかにも多数のDjango関連の記事を記載しています。興味がある方は是非参考にしてみてください。

本記事を読んでいただき感謝です。サイトを訪れていただいた方はプログラミング勉強中かと思いますのでプログラミング勉強のコツを合わせてご紹介。

スポンサーリンク
スポンサーリンク
スポンサーリンク

ブログに関しては500円程度かかりますが、それ以外は無料です。知識の吸収と並行してアウトプットは非常に効率が良いです。テックアカデミーに関しては講座レベルが高いにも関わらず、無料体験や人気口座も大幅値下げがあるので、重点的に学びたいものを無料体験してみてください。

転職時にも、エンジニアからテックアカデミー・Paizaは認知度が高いので、未経験入社採用を行う際履歴書で目に留まります。特にPaizaのスキルレベルA・SなどはIT業界でも評価されます。

テックアカデミー・Paizaの無料登録ができる期間中にぜひご利用してみてください。私も活用経験ありです。

Django
スポンサーリンク
スポンサーリンク

コメント

  1. […] […]

  2. […] […]

  3. […] […]

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