本文へスキップ
BecomeCoder

Djangoコース · 第1章 はじめてのDjango · レッスン2

はじめてのビュー ― Hello, Django

ブラウザで完結

導入

まずは「/ にアクセスしたら文字を返す」だけの、最小の Django を動かしてみましょう。データベースもテンプレートもまだ使いません。ビュー1つだけの Web アプリです。

説明

Django は「設定 → URL の割り当て → ビュー」の順で組み立てます。次のコードがそのすべてです。

import django
from django.conf import settings
if not settings.configured:
    settings.configure(DEBUG=True, SECRET_KEY="dev",
        ROOT_URLCONF=__name__, ALLOWED_HOSTS=["testserver"])
    django.setup()

from django.http import HttpResponse
from django.urls import path

# ビュー:リクエストを受け取り、レスポンスを返す関数
def hello(request):
    return HttpResponse("Hello, Django!")

# URLの割り当て:"" (= / )に来たら hello を呼ぶ
urlpatterns = [
    path("", hello),
]

# テストクライアントで / にアクセスしてみる
from django.test import Client
client = Client()
response = client.get("/")
print(response.status_code)          # 200(成功)
print(response.content.decode())     # Hello, Django!

上から順に読んでみましょう。

  • 最初の settings.configure(...)django.setup() は、このコースで毎回使う「設定」の決まり文句です。ふつうの Django ではファイルに分けて書きますが、ここでは1ファイルにまとめています(次のレッスンで中身を説明します)。
  • def hello(request):ビュー。第1引数に必ず「リクエスト」を受け取り、HttpResponse(...) でレスポンスを返します。
  • urlpatternsURL の割り当て表path("", hello) は「/(トップ)に来たら hello を呼ぶ」という意味です。
  • Client() は Django 付属のテストクライアント。本物のブラウザの代わりに client.get("/") でリクエストを送れます。返ってきた response から、ステータスコードや本文を取り出せます。

やってみよう

HttpResponse("Hello, Django!") の文字を好きなものに変えて実行し、出力欄の文字が変わることを確かめましょう。<h1>こんにちは</h1> のように HTML タグを入れても構いません(レスポンスはただの文字列です)。

演習

hello ビューが返す文字を こんにちは、Django! に変えて実行してください。

ヒント1を見る

HttpResponse("...") の中の文字だけを書き換えます。ビューや URL の形は変えません。

実際に動かしてみよう

本文のサンプルや演習のコードは、コードブロック右上の「コピー」ボタンでコピーして、下のエディタに貼り付ければそのまま実行できます。

Python — ライブラリ付きで実行(Pyodide)

numpy / pandas / matplotlib が使える本物のPython(Pyodide)を読み込みます。初回のみ読み込みに少し時間がかかります(以降はブラウザにキャッシュされます)。
スクロールして表示された時点でも自動で読み込まれます。