こんにちは!ゆーや(@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のルーティングの流れ
今回のルーティングの流れです!
この流れに沿って、実装を見直すとよく理解できるよ!
コメント