概要
Djangoドキュメントのチュートリアルに従って、mysite
プロジェクトを作成し、その中にpolls
アプリケーションを作成する。
プロジェクトの作成
プロジェクトの作成はdjango-admin
で実行する。チュートリアルのプロジェクト構成ではmysite
ディレクトリーの下にmysite
サブディレクトリーとしているが、ここではmysite/config
という構成にした。
1 2 |
$ mkdir mysite && cd mysite $ django-admin startproject config . |
ディレクトリー構成は以下のようになっている。
1 2 3 4 5 6 7 8 9 |
$ tree mysite/ mysite/ ├── config │ ├── __init__.py │ ├── asgi.py │ ├── settings.py │ ├── urls.py │ └── wsgi.py └── manage.py |
settings.py
を以下のように編集する(初期設定の詳細はこちら)。
- ローカルサーバーでの開発のため、
ALLOWED_HOSTS
に'localhost'
を設定 DATABASES
はMySQL用に設定- その他、言語コードやタイムゾーンの設定
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
.... ALLOWED_HOSTS = ['localhost'] .... DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'django_tutorial', 'USER': 'root', 'PASSWORD': '********', } } .... LANGUAGE_CODE = 'ja' TIME_ZONE = 'Asia/Tokyo' .... |
開発用サーバーを起動して、"Congratulations!"
の画面を確認。
pollsアプリケーションの作成
startapp
コマンドでpolls
アプリケーションを作成。
1 |
$ python3 manage.py startapp polls |
manage.py
は実行可能ファイルなので、以下でも作成できる。
1 |
$ ./manage.py startapp polls |
polls
アプリケーション作成後の構成は以下の通り。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
$ tree mysite/ mysite/ ├── config │ ├── __init__.py │ ├── asgi.py │ ├── settings.py │ ├── urls.py │ └── wsgi.py ├── manage.py └── polls ├── __init__.py ├── admin.py →管理者関係の設定ファイル ├── apps.py →アプリケーション構成クラス定義(PollsConfig) ├── migrations →マイグレーションファイル保存ディレクトリー │ └── __init__.py ├── models.py →モデルクラス定義 ├── tests.py →テスト用設定ファイル ├── urls.py →URL conf:ルーティング └── views.py →view関数定義ファイル |
view関数の定義
view関数はMTVの構成要素の一つで、URLからルーティングされ、モデルのデータ操作やブラウザー表示のための様々な処理を実装するもの。MVCモデルのコントローラーに相当する。
一般的にはview関数の戻り値にはブラウザー表示のためのテンプレートを渡すが、ここでは最も単純に、単に文字列だけを返すようにする。
HttpResponse
モジュールをインポートview
関数index()
を定義HttpResponse
のコンストラクターの引数に文字列を渡し、そのインスタンスを戻り値とする
1 2 3 4 5 |
from django.shortcuts import render from django.http import HttpResponse def index(request): return HttpResponse("Hello, world. You're at the polls index.") |
URL conf~ルーティング
URLからview関数index()
へのルーティングを設定する。polls
アプリケーションのビューなのでpolls/urls.py
で定義する。アプリケーションのurls.py
はデフォルトでは作成されないので、新たに作成して次の内容とする。
1 2 3 4 5 6 |
from django.urls import path from polls import views urlpatterns = [ path('', views.index, name='index') ] |
pollsアプリケーションのurls
モジュールをプロジェクトに認識させるため、conf/urls.py
に記述を追加する。
django.urls
パッケージのinclude
モジュールを追加でインポート- path関数でアプリケーションの
urls
関数をインポートし、アプリケーションのURLに紐づけ
1 2 3 4 5 6 7 |
from django.contrib import admin from django.urls import path, include urlpatterns = [ path('admin/', admin.site.urls), path('polls/', include('polls.urls')) ] |
確認
サーバーが起動した状態で、サブディレクトリーpolls/にアクセスする。今の構成ではlocalhost:8000/polls
。
ブラウザーの画面には、以下のテキストが表示される。
1 |
Hello, world. You're at the polls index. |