Django | urlディスパッチャ、View作成

Django | urlディスパッチャ、View作成

今回はDjangoのurlディスパッチャとView作成について検証します。

今回やりたいこと

「http://127.0.0.1:8000/app0001/」のリンクにアクセスした際に、「Hello world!」と表示する。

Templateフォルダの作成

htmlファイルを置く場所です。

今回は以下のような構成で作成します。(Projectフォルダから一部抜粋)

Project0001\app0001内に「templates」フォルダを作成します。

HTMLファイルの表示

表示するためのhtmlファイルを作成します。

Project0001\app0001\templates\hello.html

<!DOCTYPE html>
<html>
<head></head>
<body>
  <p>Hello world!</p>
</body>
</html>

viewsの設定

views.pyを以下の様に書き換えます。

今回は「htmlファイル」を表示するだけなので、render関数を用います。

render関数

def 関数名(request):
return render (request, htmlファイル, [コンテキスト])

コード

from django.shortcuts import render

def hello(request):
	return render(request, "templates/hello.html")

urlディスパッチャの設定

ユーザがサイトにアクセスしたときに、目的の場所へ誘導する必要があるため、urlディスパッチャを設定します。

流れをイメージ

クライアント側から「http://xxx/app0001」という問い合わせが来た場合の流れは以下の通りです。

・urls.py:誘導

・views.py:ロジックの実行

結果としてHttpResponseが返ってきます。

これをベースに作りこみを行います。

1)アプリケーションフォルダ内に「urls.py」を作成する

app0001フォルダ内にurls.pyを作成します。

コード

コードは以下の通りです。

from django.urls import path
from .views import hello # viewの参照

urlpatterns = [
    path("", hello), # http://app0001 の時のview
]

2)プロジェクトフォルダ内の「urls.py」を編集する

Project0001内のurls.pyを修正します。

コード

コードは以下の通りです。

from django.contrib import admin
from django.urls import path
from django.conf.urls import include # ←新規追加

urlpatterns = [
    path('admin/', admin.site.urls),
    path('app0001/',include('app0001.urls'))  # ←新規追加
]

アクセスしてみる

以下のリンクにアクセスします。

http://127.0.0.1:8000/app0001/

Hello world!が返ってきました。

今回は以上です!

ではまた!