2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Django初学者の自分へ(3) - こんにちわ世界! -

Last updated at Posted at 2020-05-23

チュートリアル一覧

No. タイトル
1 Django初学者の自分へ(1) - プロジェクト・アプリ -
2 Django初学者の自分へ(2) - MTVとは -
3 Django初学者の自分へ(3) - こんにちわ世界! -
4 Django初学者の自分へ(4) - メモアプリ作成 -

前回のおさらい

前回は MTV の仕組みに触れました。
今回からはいよいよコードを書いていきます!

レッツジャンゴ -こんにちわ世界!-

今回はプログラミング学習で避けては通れない道、「こんにちわ世界!(Hello world!)」を Django でやってみます。今回の目標は「こんにちわ世界!」を通じて urls.py -- views.py の繋がりを理解することです。

View の作成

まず初めに app1 内の views.py を開きます。

myapp/
    manage.py
    myapp/
        __init__.py
        asgi.py
        settings.py
        urls.py
        wsgi.py
    app1/                  
        migrations/
            __init__.py
        __init__.py
        admin.py
        apps.py
        models.py         
        tests.py
        views.py          <-- ここです!

views.py 内はデフォルトで以下のようになっていると思います。

from django.shortcuts import render

# Create your views here.

ここに「こんにちわ世界!」を表示させるために必要なものをインポートし、 View を定義します。

from django.shortcuts import render
from django.http import HttpResponse         # 追加

# Create your views here.

def hello(request):                          # View の定義
    return HttpResponse('こんにちわ世界!')

HttpResponse は読んで字のごとくでして、()内を画面に返します。
View の準備は以上です。続いて URL を設定します。

URL の設定

プロジェクトにはデフォルトで urls.py がありますが、アプリにはありません。ですので自分で作っちゃいます。

myapp/
    manage.py
    myapp/
        __init__.py
        asgi.py
        settings.py
        urls.py
        wsgi.py
    app1/                  
        migrations/
            __init__.py
        __init__.py
        admin.py
        apps.py
        models.py         
        tests.py
        views.py
        urls.py        <-- 追加

views をインポートし、URL と紐づける設定をします。
app1/urls.py

from django.urls import path
from . import views

urlpatterns = [
    path('', views.hello)
]

このように URL を定義し、それに応じた処理の振り分けを行うことを ルーティング と言います。
続いて app1/urls.pymyapp/urls.py を繋げます。
myapp/urls.py

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

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', include('app1.urls')),     # app1/urls.py に接続
]

ここまでで「こんにちわ世界!」の準備は完了です!
それではサーバを起動して http://127.0.0.1:8000/ にアクセスしましょう!
みなさんいかかでしょうか、ちゃんと「こんにちわ世界!」してますでしょうか。
hello_world.PNG

勘のいい方は気付かれているかと思いますが、今回は ModelTemplate は使用していません。というのも今回のように views.py の中でレスポンス(「こんにちわ世界!」)が完結してしまうような場合、ModelTemplate は必ずしも必要ではないのです。今回は「こんにちわ世界!」の検証のために ModelTemplate は使用しませんでしたが、実際に Webアプリケーションを作成する際には Model - Template - View は必ずと言っていいほど必要になります。MTV について不安になったら、その都度前回の記事に立ち返ってみてください。

まとめ

  • URL を定義し、リクエストに応じた処理を振り分けることを ルーティング と言う。
  • アプリ内にはデフォルトで urls.py が用意されていないので、自分で作成し、それをプロジェクトの urls.py に含ませる。

次回はこれまでの集大成として簡単なメモアプリを作成します!

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?