概要
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. |