今回はプログラムの基本である「Hello World!」を表示することにします。
前回までのセッションを行っていることを前提としています。

スポンサーリンク

対象者

  • pythonに興味がある方
  • プログラミングを始めたい方
  • pythonでWEBアプリを作りたい方

開発環境

  • macbook 12inch
  • macOS Mojave バージョン10.14.4
  • VS Code バージョン1.34.0
  • Anaconda Navigator 1.9.7
  • python 3.7
  • Django 2.1.7

スクリーンショット 2019-05-23 3.09.26

helloworldアプリを作ろう

helloworldアプリを自動生成します

アプリはいちから作る必要はなく、Djangoの機能により自動生成することができます。
まずはhelloworldアプリを作成します。手順は以下のとおりです。

  1. Annacondaを起動して対象の仮想環境の三角の再生ボタンをクリック
  2. Open Terminalをクリック →ターミナルが起動する
  3. ターミナルが起動するので以下のコマンドを入力していく
  4. cd Desktopと入力してEnter
  5. cd django_appと入力してEnter
  6. python manage.py startapp helloworld →django_appプロジェクトにhelloworldアプリが作成される

下図のようにhelloworldフォルダがdjango_appプロジェクト内に作成されます。
スクリーンショット 2019-05-26 0.41.31

helloworldアプリのviews.pyを修正します

helloworld/views.pyをVS Codeにて以下のように修正します。
index、showmsgというメソッドを作成しています。
index、showmsgメソッドはコールされるとHttpResponseを返すようなシンプルなものです。

from django.shortcuts import render
from django.http import HttpResponse

def index(request):
    return HttpResponse('Hello World!')

def showmsg(request):
    return HttpResponse('Hello World!を表示します。')

helloworldアプリにurls.pyを作成します

VS Codeにてhelloworldにurls.pyファイルを作成し、以下のように記載します。
http://sample.com/helloworld/と指定された際はhelloworld/views.pyのindexメソッドがコールされます。
http://sample.com/helloworld/showmsgと指定された際はhelloworld/views.pyのindexメソッドがコールされます。

from django.urls import path
from . import views

urlpatterns = [
    path('', views.index, name='index'),
    path('showmsg', views.showmsg),
]

下図のようにurls.pyが増えていればOKです。
スクリーンショット 2019-05-26 1.16.43

最後にdjango_appにhelloworld内のurls.pyを読み込ませる

django_appプロジェクトが起点となってWEBアプリが動作しているため、django_appプロジェクトのurls.pyにhelloworldアプリのurls.pyを読み込ませてあげないと動作しません。
django_app/urls.pyをVS Codeにて以下のように修正します。

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

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

動作確認

次に作成したhelloworldアプリをWEBサーバー上で動作させてみます。手順は以下のとおりです。
1. ターミナルを開く(上記で使用したやつ)
2. cd django_app
3. python manage.py runserver →これでDjangoが起動してWEBサーバーとして機能する
4. ブラウザにて下記のように実行してそれぞれ狙った文字列が表示されれば成功です。

http://localhost:8000/helloworld/

スクリーンショット 2019-05-26 1.21.37

http://localhost:8000/helloworld/showmsg/

スクリーンショット 2019-05-26 1.22.24

まとめ

  • 「python manage.py startapp アプリ名」でアプリの雛形を作成できます
  • urls.pyはurlからの指定された文字列を読み取り、Views.pyにどのメソッドを実行させるかを司る重要な機構です
  • views.pyは画面に表示する内容をResponseとして送り返す機構です