プロジェクトを作ったら。
前回、プロジェクトを作成したが、それはWebアプリケーションの土台となる部分。Djangoのプログラムの構造は、プロジェクトがあって、その中にいろんなアプリケーションを作って、そのそれぞれのアプリケーションの中に、そのためのプログラムを作っていく感じ。
なので、なにかしらアプリケーションを作っていこう。
アプリケーションを作る方法
ターミナルで、カレントディレクトリをdjango_appに移動させてから
python manage.py startapp アプリの名前
これで、アプリは完成。
Hello!world!を表示させるだけのアプリを作る
先ほど作った、アプリの中にある、views.py開く。これは、画面に表示させるものを記述するためのもの。まさに、やりたいことそのまんま。これに下のやつを書いていく。
// django.httpというモジュールから、HttpResponseというクラスをimport
from django.http import HttpResponse
HttpResponceとは、Webアプリにアクセスしてきた側(いわゆるクライアント)に送り返す内容を管理するクラス。
def index(request):
return HttpResponse("Hello! World!")
def index(request): とは、indexという名前の関数を作っている。引数にはrequest。この、requestというのは、Djangoビュー関数に渡されるHTTPリクエストオブジェクト。このオブジェクトは、クライアントからのHTTPリクエストに関する情報を含んでいて、例えば、GETやPOSTで送信されたデータ、クッキー、セッション、ユーザーエージェント情報などが含まれる。簡単に言うと、アクセスしてきた側の情報がたくさん入っている変数?だとぼくは認識。
Djangoのビュー関数では、通常、この request オブジェクトを受け取り、それに基づいて処理を行う。しかし、今回クライアントの情報なんて全く使ってないから、なくてもOK。ただ、入れといて損することないってことだと思う。
urls.pyを変えよう。
views.pyだけかえても、アプリケーションは使えない。urls.pyに、「このURLにアクセスされたら、このファイルのこの関数を実行させてね。」っていうことを逐一書いていかなけらばならん。めんどくさいけど、たくさんのアプリが繋がってできたプロジェクトになると、必要不可欠。
なので、次のように書いていく。
from django.contrib import admin
from django.urls import path
import hello.views as hello //今回は、helloというアプリを作った。
urlpatterns = [
path("admin/", admin.site.urls),
path("hello/", hello.index),
]
import hello.views as hello とは、「hello」フォルダ内の、views.pyをhelloという名前で呼べるようにした。
path関とは
path(アクセスするアドレス, 呼び出す処理)
第一引数に与えたアドレスにアクセスをしたら第二引数の処理を実行してくれという意味。
だから、
hello/にアクセス
↓
path("hello/", hello.index)
↓
hello.indexを実行
となる。
urlpatterns は、DjangoのURL設定で使用される特別なリストです。Djangoはこのリストを使用して、クライアントのHTTPリクエストを適切なビューにルーティングします。通常、urlpatterns リストには、path() や re_path() などの関数を使用して、URLパスとそれに対応するビューを指定します
アクセスしてみる!
Djangoで作ったWebアプリにアクセスするためには?
まず、ターミナルで次のコマンドを実行して、ローカルサーバを立ち上げるんでしたよね。
python manage.py runserver
そしたら、この立ち上げたサーバ(localhostサーバ)にアクセスするため、次のアドレスをChromeでもなんでも検索してみる!ここで、今回は、作ったサーバのhelloにアクセスする!
http://localhost:8000/hello/
「Hello! World!」と表示できた!