アプリ プログラミング

DjangoでHello World!のWeb画面を作成する

2017年12月12日

Djangoで「Hello World!」をする方法を紹介します。

この記事はLinuxサーバに事前にPythonおよびDjangoをインストールしていることを前提に記載しています。

↓の手順を事前に実施しておいてください。ディレクトリ構成などは↓と同じにしています。

LinuxにPython3系をインストールする手順

こんにちは!シミダイ(@shimidai2100)です。 LinuxにPythonをインストールする手順を紹介します。 ...

LinuxにDjangoをインストールする手順

LinuxにDjango(ジャンゴ)をインストールする手順を紹介します。 Djangoとは、Pythonで作られているの ...


プロジェクトを作成する

今回は「testSite」というプロジェクトを作成します。

↓が実行ログです。

(venv) [root@centos7-local myproject]# django-admin.py startproject testSite
(venv) [root@centos7-local myproject]# ls
testSite venv
(venv) [root@centos7-local myproject]# cd testSite/

これでプロジェクトの作成は完了です。

アプリケーションを作成する

今回は「helloworld」というアプリケーションを作成します。

↓が実行ログです。

(venv) [root@centos7-local testSite]# python manage.py startapp helloworld
(venv) [root@centos7-local testSite]# ls
helloworld manage.py testSite

これでアプリケーションの作成はOKです。

プロジェクトにアプリケーションを組み込む

作成プロジェクトの一部としてアプリケーションを組み込む必要があります。

組み込み方は簡単です。プロジェクトフォルダ内の「settings.py」を編集します。

INSTALLED_APPS」タグ内にアプリケーション名を追加すれば組み込みは完了します。

↓が実行ログになります。

(venv) [root@centos7-local testSite]# vi testSite/settings.py

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'helloworld', # 追記
]

これでアプリケーションの組み込みは完了です。

ついでに「settings.py」の「ALLOWED_HOSTS」の設定もしておきましょう。

ALLOWED_HOSTS = ['*']

 

アプリケーションのView関数を作成する

次に「Hello World!」と出力する「View」関数を作成します。

アプリケーションフォルダ配下の「helloworld/views.py」を編集します。

↓が実行ログです。

vi helloworld/views.py
from django.http.response import HttpResponse

# Create your views here.
def helloworld(request):
    return HttpResponse('Hello World!')

これでViewの作成は完了です。

プロジェクトのディスパッチャの設定

ディスパッチャは「URLに対してリクエストが送られた場合、レスポンスを返すアプリケーション/View関数を指定する」機能です。

このURLを見たい」とリクエストをすると、「そのURLならこのアプリケーション/View関数を見てね」と返してくれるのがディスパッチャです。

このディスパッチャには大きく分けて2種類あります。

1つは、「プロジェクトのディスパッチャ」です。これはプロジェクトに来たリクエストをどのアプリで実行するか振り分けるディスパッチャです。

もう1つは、「アプリケーションのディスパッチャ」です。これは各アプリケーションに来たリクエストをどのViewで実行するか振り分けるディスパッチャです。

2つは動きは大きくは違いはありません。プロジェクトがどのアプリケーションを使用するか判断し、ディスパッチされたアプリケーションは対象のView関数を呼び出すのです。

では、まずプロジェクトのディスパッチャを設定します。

↓が実行ログです。追記箇所を「testSite/urls.py」に追記してください。

vi testSite/urls.py
from django.conf.urls import url
from django.contrib import admin
from django.conf.urls import include, url #追記

urlpatterns = [
    url(r'^', include('helloworld.urls', namespace='helloworld')), # 追記
    url(r'^admin/', admin.site.urls),
]

これでプロジェクトのディスパッチャは完了です。

アプリケーションのディスパッチャの設定

プロジェクトのディスパッチャ設定が終わったら、アプリケーションのディスパッチャ設定を行います。

helloworld/urls.py」を編集します。

↓が実行ログになります。

vi helloworld/urls.py
from django.conf.urls import url
from . import views

urlpatterns = [
    url(r'^$', views.helloworld, name='helloworld'),
]

これでアプリケーションのディスパッチャは完了です。

Hello Worldの確認

マイグレーション実施後にサーバを起動して動作をしてみます。

↓がマイグレーションコマンドです。

python manage.py migrate

↓が実行ログです。

(venv) [root@centos7-local testSite]# python manage.py migrate
Operations to perform:
  Apply all migrations: admin, auth, contenttypes, sessions
Running migrations:
  Applying contenttypes.0001_initial... OK
  Applying auth.0001_initial... OK
  Applying admin.0001_initial... OK
  Applying admin.0002_logentry_remove_auto_add... OK
  Applying contenttypes.0002_remove_content_type_name... OK
  Applying auth.0002_alter_permission_name_max_length... OK
  Applying auth.0003_alter_user_email_max_length... OK
  Applying auth.0004_alter_user_username_opts... OK
  Applying auth.0005_alter_user_last_login_null... OK
  Applying auth.0006_require_contenttypes_0002... OK
  Applying auth.0007_alter_validators_add_error_messages... OK
  Applying auth.0008_alter_user_username_max_length... OK

次にサーバを起動してみます。↓が実行コマンドです。

python manage.py runserver 0.0.0.0:8000

http://IPアドレス:8000」にアクセスすると↓の画面がなるはずです。

これでDjangoで「Hello World!」ができるようになりました。

お疲れ様です!

関連記事

-アプリ, プログラミング

Copyright© shimidai2100 , 2020 All Rights Reserved.