はじめに
個人用のメモ書きです。Djangoの公式ドキュメント「はじめてのDjangoアプリ作成」をもとに作成しています。
環境
- PC : MacBook Air (13-inch, Early 2014)
- OS : macOS Mojave Ver. 10.14.2
- python : Ver. 3.7
- Django : Ver. 2.1.5
前提条件
Python、Djangoは既にインストール済であることを前提としています。
完成イメージ
プロジェクトを作成する
デモ用にプロジェクトを新規作成します。プロジェクト名は 「sample_project」とします。
$ django-admin startproject sample_project
以下のファイルが生成されます。
sample_project/
manage.py
sample_project/
__init__.py
settings.py
urls.py
wsgi.py
外側のsample_project/ ルートディレクトリはDjangoに依存しないため、名前は好きなものに変更できます。既に存在するディレクトリにプロジェクトを作成する場合は、プロジェクト名に続いてディレクトリを入力して実行します。
$ django-admin startproject sample_project (任意のディレクトリ)
なお、プロジェクト名に 「-(ハイフン)」は使用できません。また、プロジェクト名に限らず、予約語や組み込み関数名と衝突しないよう注意しましょう。
アプリケーションを作成する
プロジェクトを作成したら、次はアプリケーションを作成します。アプリケーション名を「app1」とします。
$ python manage.py startapp app1
アプリケーションは実際に何らかの処理を行う個別のアプリーケーションを指します。プロジェクトはあるウェブサイト向けに設定とアプリケーションを集めたものです。例えば、販売管理システム(プロジェクト)に対し、売上管理アプリ、在庫管理アプリ、予算管理アプリ(アプリケーション)といった具合です。
ビューを作成する
views.pyを開き、以下のpythonコードを書きます。
from django.http import HttpResponse
def index(request):
return HttpResponse("Hello, world!")
URLconfを作成する
先ほど書いたビューを呼ぶために、URLを対応付けします。
まず、app1ディレクトリにurls.pyというファイルを作ります。アプリのディレクトリは以下のようになります。
app1/
__init__.py
admin.py
migrations/
__init__.py
models.py
tests.py
urls.py
views.py
作成した app1/urls.py に以下のコードを書きます。
from django.urls import path
from . import views
urlpatterns = [
path('', views.index, name='index'),
]
次に、作成したアプリのURLconfをプロジェクト側のURLconfに反映させます。
今度は sample_project/urls.py に以下を追加します。
from django.contrib import admin
from django.urls import include, path
urlpatterns = [
path('app1/', include('app1.urls')),
path('admin/', admin.site.urls),
]
結果
コマンドラインで開発用サーバを動かします。
$ python manage.py runserver
ブラウザで http://localhost:8000/app1/ にアクセスすると「Hello World!」が表示されます。
おわりに
公式により丁寧な説明がありますので、基本はそちらを使って勉強するのがよいと思います。ただ動かすだけであれば、プログラミング未経験者でも迷うポイントはあまりないと思います。
個人的引っかかりポイントは、プロジェクトとアプリケーションの区別(どのような単位でアプリケーションを作ればよいか?)とそれぞれの名前の付け方でした。