【Django入門4】URLとビューの設定|Webページ表示の仕組みを徹底解説

URLとビューの基本概念

URLとは何か?

Webサイトのページにアクセスするための「アドレス」を意味します。Djangoでは、URLによってどのビュー(画面)が表示されるかを定義する仕組みが組み込まれています。

ビューとは何か?

ビューとは、ユーザーがアクセスしたときに表示されるページの内容やロジックを決定する部分です。Djangoのビューは、主にPythonで記述され、リクエストに応じたレスポンスを返します。

URLの設定

urls.pyファイルの役割

Djangoでは、リクエストされたURLをどのビューに紐づけるかを定義するために「urls.py」ファイルを使用します。

URLの設定手順

  1. プロジェクトのディレクトリにあるurls.pyファイルを開きます。
  2. 必要なURLパターンを追加します。

例:基本的なURL設定

from django.contrib import admin
from django.urls import path
from . import views  # ビューのインポート

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', views.home, name='home'),  # ホームページのURL
    path('about/', views.about, name='about'),  # 「About」ページのURL
]

path()関数の構成

  • path(‘URLパターン’, ビュー関数, オプションの名前)
    • URLパターン: ユーザーがアクセスするURLの部分。
    • ビュー関数: リクエストが来たときに呼び出される関数。
    • オプションの名前: このURLパターンを識別するための名前。

ビューの作成

ビューの定義方法

ビューはviews.pyファイルに定義されます。このファイルでリクエストを受け取り、HTMLやテキストなどのレスポンスを返す処理を記述します。

基本的なビュー関数の例

from django.http import HttpResponse

# ホームページ用ビュー
def home(request):
    return HttpResponse("<h1>ようこそ!Djangoのホームページへ</h1>")

# Aboutページ用ビュー
def about(request):
    return HttpResponse("<h1>このサイトについて</h1>")

render()関数の利用

より複雑なページを表示する場合、テンプレートを利用することが一般的です。Djangoには、テンプレートを表示するためのrender()関数が用意されています。

render()を使ったビューの例

from django.shortcuts import render

def home(request):
    return render(request, 'home.html')
  • render(request, テンプレート名): 指定したテンプレートを使ってページを生成します。

テンプレートの設定

テンプレートとは?

テンプレートはHTMLファイルの形式で作成され、動的なコンテンツを表示するための仕組みを提供します。

テンプレートの配置場所

Djangoでは、通常、各アプリケーション内に「templates」というフォルダを作成してテンプレートを配置します。

例: テンプレートフォルダの構成

myapp/
    ├── templates/
    │   └── home.html
    ├── views.py
    └── urls.py

簡単なテンプレート例

home.html

<!DOCTYPE html>
<html lang="ja">
<head>
    <meta charset="UTF-8">
    <title>ホームページ</title>
</head>
<body>
    <h1>ようこそ、Djangoのホームへ!</h1>
</body>
</html>

開発サーバでの動作確認

開発サーバの起動方法

Djangoには開発用の簡単なサーバが付属しています。次のコマンドを実行すると、すぐにアプリケーションの動作を確認できます。

python manage.py runserver

動作確認の手順

  1. ターミナルに表示されるURL(通常はhttp://127.0.0.1:8000/)をブラウザで開きます。
  2. 設定したURLにアクセスして、正しいビューが表示されているか確認します。

例:

  • ホームページ:http://127.0.0.1:8000/
  • Aboutページ:http://127.0.0.1:8000/about/

6. まとめ

DjangoのURLとビューの設定は、Webアプリケーションを構築するうえで非常に重要な基礎です。URLによってどのビューを呼び出すかを明確に定義し、ビューで動的なレスポンスを作成することで、さまざまなWebページを構築できます。