レザボア・コンサルティングの中西です。
この記事では、Python の Web フレームワーク Django を使ったプロジェクトの作成から起動までの手順を、初心者の方でもスムーズに進められるよう丁寧に解説します。
Django とは
Djangoは、Pythonで書かれた強力で柔軟なWebフレームワークです。
Django is a high-level Python web framework that encourages rapid development and clean, pragmatic design. Built by experienced developers, it takes care of much of the hassle of web development, so you can focus on writing your app without needing to reinvent the wheel. It’s free and open source.
(出典:Django公式ドキュメント)
と謳われているように、Web 開発の面倒な作業の多くが標準的な仕組みで実現されるため、アプリケーション開発の生産性を向上させる優れたフレームワークです。
前提条件
- Python 3.6 以降がインストールされていること
- pip がインストールされていること
※本記事では上記のインストール手順は解説に含めません。
作業フォルダの作成と仮想環境の設定
まず、プロジェクトの作業フォルダを作成し、仮想環境を設定しましょう。
任意の場所で新しいフォルダを作成します。
mkdir django-sample
cd django-sample
次に Python の仮想環境を作成します。
python -m venv venv
仮想環境を有効化します。
# Windows の場合
venv\Scripts\activate
# Unix または macOS の場合
source venv/bin/activate
仮想環境が有効化されると、コマンドプロンプトまたはターミナルに (venv) と表示されるようになります。
Django のインストール
仮想環境内で、Django をインストールします。
pip install django
プロジェクトの作成
Django をインストールしたら、新しいプロジェクトを作成しましょう。
これは Django の設定関連を管理するプロジェクトになります。
django-admin startproject sample .
注意点として、最後の . (ピリオド) は現在のディレクトリにプロジェクトを作成するための引数です。
すでに作成したプロジェクトのディレクトリで作業しているので、このコマンドで、sample という名前のプロジェクトが同じ階層内に作成されます。
この時点で、ディレクトリの構造は次のようになっています。
django-sample/
sample/
__init__.py
settings.py
urls.py
asgi.py
wsgi.py
venv/
...
manage.py
- sample/: プロジェクト名とパッケージ名が同じディレクトリ
- venv/: 仮想環境ディレクトリ
- manage.py: Django プロジェクトを操作するためのコマンドラインユーティリティ
アプリケーションの作成
Django ではプロジェクト内にアプリケーションを作成します。アプリケーションとはモデル、ビュー、テンプレートなどの機能をまとめた単位です。
プロジェクトディレクトリに移動し、次のコマンドを実行してアプリケーションを作成します。
python manage.py startapp myapp
これで myapp という名前のアプリケーションが作成されます。
実際のプロジェクトでは、このアプリケーションが担う機能の名称にするのが良いでしょう。
この時点で、ディレクトリ構造は次のようになっています。
django-sample/
sample/
__init__.py
settings.py
urls.py
asgi.py
wsgi.py
venv/
...
myapp/
__init__.py
admin.py
apps.py
migrations/
__init__.py
models.py
tests.py
views.py
manage.py
設定ファイルの編集
次に sample/settings.py ファイルを編集して、作成したアプリケーションを有効化します。
INSTALLED_APPS
の配列に 'myapp' を追加します。
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'myapp', # 追加
]
また、 LANGUAGE_CODE
を 'ja' などの日本語コードに変更すれば、Django の管理画面の表示言語を日本語にできます。
LANGUAGE_CODE = 'ja'
ビューとURLルーティングの設定
この時点で起動することもできますが、せっかくなので Hello World のようなチュートリアルまで行ってしまいましょう。
myapp/views.py
ファイルにビューを作成し、 sample/urls.py
ファイルでURLルーティングを設定します。
まず myapp/views.py
を編集して、ビューを作成します。
from django.http import HttpResponse
def index(request):
return HttpResponse("Hello, Django!")
次に sample/urls.py
を編集し、URLルーティングを設定します。
from django.contrib import admin
from django.urls import path, include
urlpatterns = [
path('admin/', admin.site.urls),
path('', include('myapp.urls')), # 追加
]
最後に myapp/urls.py
ファイルを新規作成し、ビューとURLのマッピングを設定します。
from django.urls import path
from . import views
urlpatterns = [
path('', views.index, name='index'),
]
これで、ルートのパスが index
関数と紐づきました。
マイグレーションの実行
マイグレーションを実行しましょう。
これにより初期の Django アプリケーションに必要なテーブルがデータベースに作成されます。
特に設定していない場合は、デフォルトで同梱されている sqlite に設定が反映されています。
python manage.py migrate
サーバーの起動
設定が完了したら、次のコマンドでサーバーを起動できます。
python manage.py runserver
サーバーが起動したら、ブラウザで http://127.0.0.1:8000/ にアクセスすると、Hello, Django! と表示されるはずです。
これで Django プロジェクトの作成から起動までの手順が完了しました。
おわりに
本記事では Django を使ったプロジェクトの作成から起動までの手順を紹介しました。
ここから、機能の追加やモデル作成、テンプレートの作成などを行うことで、迅速にアプリケーション開発を行うことができます。