世界一簡単なPython Djangoのはじめかた

2016.10.24

e3f38a61-bab7-8ad1-173b-a76b82ae8b78

それなりのアプリケーションであればbottleでも問題ないのですが、様々なアプリケーションを内包するようなものを作りたい or データベースを駆使して色々やってみたい。となった場合はフルスタックフレームワークであるDjangoの導入が最も早いのではないかと思います。

今回はMac限定ではありますが、Djangoをはじめるもっとも簡単な方法を取り上げていきます。
bottleではやりにくかったことや、データベースとの連携、フォームの充実やセキュリティなど、Djangoの利点は非常に大きいのでDjangoを勉強することはおすすめです。

Kindleでも公開しています。
https://www.amazon.co.jp/dp/B01MQU38Y0
https://www.amazon.co.jp/dp/B01MRTV7IE

まずはPython3だけインストールしておいてください。

仮想環境の構築

仮想環境を作るのが面倒くさい、と思っていたのですが仮想環境を作らないほうが面倒くさいです。仮想環境作らずにゴニョゴニョやるのは時間的に6時間位無駄です。
Djangoproject とでも名付けてフォルダを作ってください。ここにザックリと環境を構築していきます。

仮想環境を作るためにインストール。

$ sudo pip install virtualenv

Djangoprojectディレクトリへ移動して構築していきましょう。

$ cd Djangoproject
$ virtualenv --python="`which python3.5`" virtualenv

仮想環境を有効化します。

$ source virtualenv/bin/activate

(virtualenv)~ から始まっていれば成功。

Djangoをインストールして初期設定をする

Djangoprojectディレクトリで仮想環境を有効にしたまま、Djangoをインストールします。仮想環境下にインストールしないと全く先に進めないのでここは注意して作業を進めていきましょう。

(virtualenv)$ sudo pip install django

ちゃんと入ったかどうかは pip freeze で確認できます。
多分Django1.10〜が入っているはず。プロジェクトを作成します。

(virtualenv)$ django-admin startproject mysite

旧Djangoは django-admin.py うんたらだったのでコマンドが変更になってます。

mysite/
  manage.py
  mysite/
   init.py
   settings.py
   urls.py
   wsgi.py

上記のようになっていれば成功です。次にアプリケーションを作成しましょう。

(virtualenv)$ cd mysite
(virtualenv)$ python manage.py startapp myapp

myapp/
  init.py
  admin.py
  apps.py
  migrations/
     init.py
  models.py
  tests.py
  views.py

上記構成になっていればOKです。
後はチュートリアルどおりに設定していきます。

myapp/views.py

from django.http import HttpResponse

def index(request):
    return HttpResponse("Hello, world.")

注意するのはここ。myapp/ に urls.py を作成します。
myapp/urls.py

from django.conf.urls import url
from . import views

urlpatterns = [
    url(r'^$', views.index, name='index'),
]

mysite/urls.py

from django.conf.urls import include, url
from django.contrib import admin

urlpatterns = [
    url(r'^myapp/', include('myapp.urls')),
    url(r'^admin/', admin.site.urls),
]

mysite/settings.py

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'myapp', # この文言を追加
]

ここまで出来れば初期設定は完了です。mysite ディレクトリへ戻り

(virtualenv)$ python manage.py runserver

http://localhost:8000/myapp/
で確認できるはずです。