【完全独学Python】Djangoでルーティングしてアプリのトップページを表示する方法

Web

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

今回はPythonの人気フレームワークであるDjangoを使って

ルーティングして、自分で作ったトップページを表示する方法

をご紹介します!

Python初心者でも安心して始められる内容になっていますので、ぜひ参考にしてみてください!

ゆーや
ゆーや

Webアプリを作成するにはDjangoがオススメ!

Djangoの開発環境が作りたい!という方は次の記事を見てね!

ルーティングとは

Djangoにおけるルーティングは、URLパスをビュー関数やクラスと関連付けるプロセスです!

これにより、特定のURLがリクエストされた際にどのビューが処理を担当するかを決定します!

Djangoのルーティングは主にURLconf(URL configuration)と呼ばれるものを使用して行います!

ゆーや
ゆーや

URLに対して、どの画面が表示されるか」を決める作業だね!

プロジェクト・アプリの準備

プロジェクトの作成

次のコマンドでプロジェクトを作成します!

django-admin startproject rooting_practice_project
ゆーや
ゆーや

今回は「rooting_practice_project」という名前で作成しました!

プロジェクト名はなんでもOKですが、同じにすると記事が読みやすいかも!

アプリの作成

「プロジェクトの作成」で作ったフォルダに移動し、次のコマンドを実行します!

python manage.py startapp rooting_app
ゆーや
ゆーや

フォルダ内に「rooting_app」という名前のフォルダが出来たら成功!

環境変数にアプリを追加

画像の場所に格納されているsetting.pyを以下のように修正します!

INSTALLED_APPS = [
    "django.contrib.admin",
    "django.contrib.auth",
    "django.contrib.contenttypes",
    "django.contrib.sessions",
    "django.contrib.messages",
    "django.contrib.staticfiles",
    # 作成したアプリの追加
    "rooting_app.apps.RootingAppConfig",
]
ゆーや
ゆーや

追加した「”rooting_app.apps.RootingAppConfig”」は

アプリフォルダ内のapps.pyに定義されているRootingAppConfigを指しているよ!

ルーティングの方法

プロジェクトのurls.pyを修正

from django.contrib import admin
# includeを追加
from django.urls import path, include

urlpatterns = [
    path("admin/", admin.site.urls),
    # アプリのurls.pyへ誘導を追加
    path('', include('rooting_app.urls'))
]
ゆーや
ゆーや

アプリフォルダ側にもurls.pyがあるので、そちらで設定するようにします!

ちなみに、path関数は、以下のルールで使用します!

(他にも引数はありますが、いったんこれだけ覚えましょう!)

path({アクセスするURL}, {URLにアクセスしたらどうするか})

今回で言えば、routeは「”」なので

http(s)://(ホスト)/

にアクセスした場合、viewは「iinclude(‘rooting_app.urls’)」なので

rooting_app.urls

にゆだねるという意味だと理解しておきましょう!(この後作成します!)

アプリのurls.pyの作成・修正(rooting_app.urls)

アプリフォルダ内にurls.pyを作成する

作成したurls.pyを修正する

# pathをインポート
from django.urls import path
# viewsをインポート
from . import views

# アプリ名を設定
app_name = "rooting_app"

# urlパターンを記述
urlpatterns = [
    # http(s)://{ホスト名}/にアクセスした際、view.IndexViewを表示する設定
    path('', views.IndexView.as_view(), name='index')
]
ゆーや
ゆーや

これでveiws.IndexView.as_view()が実行されるようになったけど、

IndexViewを作らなきゃだめだね!

views.pyにトップページ用のview(IndexView)を作成

画像の場所に格納されているviews.pyを以下のように修正します!

from django.shortcuts import render

# TemplateViewをインポート
from django.views.generic.base import TemplateView

# IndexViewクラスを作成
class IndexView(TemplateView):
    template_name = 'index.html'
ゆーや
ゆーや

ここまで来れば、あと一歩!

index.htmlを作成すればOK!

ただし、作る場所に注意!

トップページ(index.html)を作成

templatesフォルダを作成

ゆーや
ゆーや

Djangoは「templates」フォルダを作っておくと、

このフォルダからテンプレートを検索してくれるよ!

templatesフォルダにindex.htmlを作成

<!DOCTYPE html>
<head></head>
<body>
    <h1>完全独学Python</h1>
</body>
ゆーや
ゆーや

ここまで来たら完成!

プロジェクトを起動してみよう!

プロジェクトの起動

python manage.py runserver

http://127.0.0.1:8000/にアクセスして次のように表示されれば成功です!

【まとめ】Djangoのルーティングの流れ

ゆーや
ゆーや

今回のルーティングの流れです!

この流れに沿って、実装を見直すとよく理解できるよ!

コメント

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