Djangoで「Hello World!」をする方法を紹介します。
この記事はLinuxサーバに事前にPythonおよびDjangoをインストールしていることを前提に記載しています。
↓の手順を事前に実施しておいてください。
ディレクトリ構成などは↓と同じにしています。
プロジェクトを作成する
今回は「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('',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」にアクセスすると↓の画面がなるはずです。