導入
まずは「/ にアクセスしたら文字を返す」だけの、最小の 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(...)でレスポンスを返します。urlpatternsが URL の割り当て表。path("", hello)は「/(トップ)に来たらhelloを呼ぶ」という意味です。Client()は Django 付属のテストクライアント。本物のブラウザの代わりにclient.get("/")でリクエストを送れます。返ってきたresponseから、ステータスコードや本文を取り出せます。
やってみよう
HttpResponse("Hello, Django!") の文字を好きなものに変えて実行し、出力欄の文字が変わることを確かめましょう。<h1>こんにちは</h1> のように HTML タグを入れても構いません(レスポンスはただの文字列です)。
演習
hello ビューが返す文字を こんにちは、Django! に変えて実行してください。
ヒント1を見る
HttpResponse("...") の中の文字だけを書き換えます。ビューや URL の形は変えません。