Django

Django 簡単なアプリを作って基礎を覚える② プロジェクト作成されるファイルの役目

前回は、スーパーユーザーの作成をして管理サイトまで入ることを確認しました。今回は、自分で作ったサイトを表示させるところまですすめていこうと思います。

まぁ、サイトと言っても言葉を表示するだけの簡単なものです。

Djnagoのプロジェクト作成されるファイルの役目

まずは、ファイルの役割の確認をしましょう❕

色々、自動で作ってくれていますね😀

この中で、特によく使うのは、urls.py 、views.py 、models.py です!

今回は、url.pyとviews.py の役目を確認しましょう

urls.py の役目

urls.pyは、簡単にいうと指示書や指示を出す人ですね。だれになんの作業を実施させるかが記載、指示している人なります。

野球⚾でいうと、監督ですかね。

ポイント

urls.pyは、指示している人👉
野球⚾でいうと、監督🤔


まずは、最初に作成されているtestprojectにあるurl.pyファイルを確認してみましょう❕

"""testproject URL Configuration

The `urlpatterns` list routes URLs to views. For more information please see:
    https://docs.djangoproject.com/en/3.1/topics/http/urls/
Examples:
Function views
    1. Add an import:  from my_app import views
    2. Add a URL to urlpatterns:  path('', views.home, name='home')
Class-based views
    1. Add an import:  from other_app.views import Home
    2. Add a URL to urlpatterns:  path('', Home.as_view(), name='home')
Including another URLconf
    1. Import the include() function: from django.urls import include, path
    2. Add a URL to urlpatterns:  path('blog/', include('blog.urls'))
"""
from django.contrib import admin
from django.urls import path

urlpatterns = [
    path('admin/', admin.site.urls),
]

上に、いちよ説明文が書かれていますが、あまりわかりやすくないし読む気になれない人が多いと思います…

いつも、説明文は邪魔なので消しちゃっています(笑)

from django.contrib import admin
from django.urls import path

urlpatterns = [
    path('admin/', admin.site.urls), #urlのadminってなっていたら、管理サイトへいきなさいよーっていう支持
]

これで、すっきりしました😀

中身をみてみると、urlのパターンがadminなら、admin.site.urlsです。という意味の記載がされています。Webシステムってすべてurlでどんなページで何の情報を表示させてほしいのかが判断できるようになっているのです。

その指示を振分けする最初が、プロジェクトの直下にあるurls.pyです。

実際に、そこで判断されているのか、実験してみましょう❕


from django.contrib import admin
from django.urls import path

urlpatterns = [
    path('hello/', admin.site.urls),  #admin ⇒ hello に変更してみます
]

変更して保存して、 http://127.0.0.1:8000/admin/ サイトを開いてみましょう。

ページが見つからなかったという画面になれました。helloというパターンしかなかったから、何もマッチしなかったよー的な意味が書かれています。

英語が全然できないので、雰囲気での解釈ですが(笑)

http://127.0.0.1:8000/hello/ で開いてみると、

helloで管理画面に入ることができました😃

これで、urls.pyがページを開くことを指示していることがわかったと思います。

管理画面のサイトは、adminに戻しておきましょう。

from django.contrib import admin
from django.urls import path

urlpatterns = [
    path('admin/', admin.site.urls),
]

views.py について

viewsファイルは、urlsから呼出せれ、指示に基づいてデータを取って表示を出すための役目をはたしています。

野球でいうと、選手ですね⚾urls.py は、監督でバントの指示がでて、実際バントを実行するのがviews.py 選手ということになります。

選手には、名前があって名前が呼ばれるとその選手が持っているプログラムが実行されることになります。

ポイント

views.pyは、指示を実行する人

野球でいう選手🥎

今回は、よくある「Hello!World!」と、表示するようにしてみましょう!Hello!Worldは、C言語のプログラミング参考書で最初にする項目として有名になり、だいたいなんでも最初は、Hello!word!の表示が課題として多いです。

viewsファイルを開いてみましょう!

これが、urls.pyから指示を受けてその処理をする内容を記載するところになります。

では、コード書きましょう!

まずは、

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

HttpResponseオブジェクトを返すための役割をインポートします。あんまり細かいことはわかりませんが(笑)

そして、指示の名前を決めて指示内容を書いていきましょう😃

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


def helloworld(request):
    hello_display = HttpResponse("Hello World")
    return hello_display

def のあとは、指示の名前になります。helleworldという名前をurlsから支持をうけると次からの行が処理されます。

hello_display という箱に、Httpで返しなさい("Hello World")という内容をという内容です。

そして最後に、returnで支持を出されたとこにお返しします、hello_display っていう箱を。という意味になります。

次は、urlsに支持を出すための追記をします。支持をまず受けるのは、testprojectの直下にあるurls.pyファイルです。

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

urlpatterns = [
    path('admin/', admin.site.urls),
    path('task/', include('task.urls')), #追記
]

2行目に、include を追記します。これは、他のアプリのurlsに支持を渡すためのものになります。

5行目の追記したのは、urlが[ task ]となっていたら、アプリ名 task のurlsに支持を渡してね❕ってことです。

まだ、アプリ task に urls.py を追加します。

作成した urls.py に追記します。

from django.urls import path, include
from .views import helloworld

urlpatterns = [
    path('hello/', helloworld, name="helloworld"),
]

まずは、2行目に .views の . は同じ階層にあるの意味なので、同じ階層にある views ファイルの helloworld って名前の支持を読み込みしておいてね!ってことです。

そして、4行目にある、hello/ は、指示が hello なら、 helloworld を実行してね❕ という意味です。この指示の名前は、 helloworld にします。ということです。

それでは、サーバーを起動させましょう。

python manage.py runserver

クリックすると、ページがないよっていうエラー画面にあると思います。

url を http://127.0.0.1:8000/task/hello に変更して表示してみましょう❕

やりました😄Hello World が表示されましたね❕

ポイント

  • urls.pyは、指示をする人
  • views.pyは、指示を聞いて実行する人

今回はここまで理解しておきましょう😃

次回は、models.pyを確認していこうと思います😆

djangoのmodels.py作成
Django 簡単なアプリを作って基礎を覚える③ 管理画面を使う

前回は、urls.py と views.py の役割と動作を確認しました。 今日は、データを保存するデータベースを作成する、models.py について解説と作成をします。 もくじ1 models.p ...

続きを見る

-Django

© 2021 ごろう@縁紡ぐ