ジャンゴ(django)のルーティング(Routing)

2019-06-03

ジャンゴ(django)のURL管理機能を使ってウェブサービスのルーティング(Routing)を管理してみましょう。

概要

本格的ジャンゴ(django)を使ってウェブサービスを作ってみようかと思います。ウェべサービスを作るためにはユーザーが接続するURL別ページを作ってそのページをサービスする必要があります。このブログポストではジャンゴ(django)で基本的提供してるURL管理機能を使ってウェブサービスのルーティング(Routing)を管理する方法について説明します。

このブログはシリーズです。下記のリンクでシリーズの他の記事を見ることができます。

また、このブログシリーズで説明したソースコードはgithubに公開されております。下記のリンクで確認できます。

ルーティング確認

ジャンゴ(django)は大きくプロジェクト(Project)単位とアプリケーション(Application)単位が存在します。ジャンゴ(django)プロジェクトはたくさんのアプリケーションを持つことができます。この意味はプロジェクト(Project)単位のルーティング(Routing)管理とアプリケーション(Application)単位のルーティング(Routing)管理が存在してることです。まず、ジャンゴ(django)のプロジェクト単位のルーティング(Routing)管理を確認するためdjango_exercise/urls.pyファイルを確認します。

...
from django.contrib import admin
from django.urls import path

urlpatterns = [
    path('admin/', admin.site.urls),
]

ファイルを開いたら上のような画面が見えます。以前のブログポスト(ジャンゴ(django)の管理者ページ)でhttp://127.0.0.1:8000/adminのURLで管理者ページに接続しました。私たちは何も設定しなかったけど、管理者ページが見えた理由はdjango_exercise/urls.pyファイルに上のように基本的設定がされてるからです。私たちはここに私たちが新しく作ったジャンゴ(django)のアプリケーション(Application)のルーティングファイルを登録してアプリケーション(Application)別ルーティングを管理する予定です。

ビュー生成

一旦アプリケーション(Application)のルーティング(Routing)を使ってURLに連結するビュー(Views)を生成する必要があります。blog/views.pyを開いて下記のように修正します。

from django.shortcuts import render

def posts(request):
    return render(request, 'blog/posts.html', {})

HTMLファイル生成

ビュー(Views)ファイルが参照してるblog/posts.htmlファイルを生成します。blog/templates/blog/posts.htmlファイルを生成して下記のようにコーディングします。

<html>
  <header>
    <title>Hello World</title>
  </header>
  <body>
    Hello World
  </body>
</html>

これでルーティング(Routing)を使ってURLに連結する画面が用意できました。今からはルーティング(Routing)を使ってURLと画面を連結する方法について説明します。

アプリケーションのルーティングファイル生成

私たちが作っているブログウェブサイトに該当するジャンゴ(django)のアプリケーション(Application)のためルーティング(Routing)ファイルを作る必要があります。blog/urls.pyファイルを生成して下記の内容を追加します。

from django.urls import path
from . import views

urlpatterns = [
    path('', views.posts, name='posts'),
]

アプリケーションのルーティング登録

上で生成したジャンゴ(django)のアプリケーション(Application)のルーティング(Routing)ファイルであるblog/urls.pyをジャンゴ(django)のプロジェクト(Project)に登録する必要があります。django_exercise/urls.pyを開いて下記のように修正します。

from django.contrib import admin
from django.urls import path, include # <<< here

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', include('blog.urls')), # <<< here
]

確認

下記のジャンゴ(django)のコマンドを使ってテストサーバーを起動した後、http://127.0.0.1:8000/に接続して、私たちが設定したルーティング(Routing)が動いてるか確認します。

# source venv/bin/activate
# pip install -r requirements.txt
# cd django_exercise
python manage.py runserver

ブラウザでHello Worldが表示されることが確認できます。

完了

これでジャンゴ(django)のルーティング(Routing)について見てみました。今からはルーティング(Routing)の機能を使って自分が作った画面とURLを連結することができます。

Buy me a coffeeBuy me a coffee
Posts