2016.10.24
それなりのアプリケーションであれば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)~ から始まっていれば成功。
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/
で確認できるはずです。