この冬はLPICの受験勉強!

→スマホとかPCから勉強できる自分用の単語帳的なアプリが欲しい!

→Androidアプリ開発者レベル1だからとりあえずWebアプリで早急に作ろう!

→手軽にホスティングできて、手軽に作れるフレームワークで!

→heroku + python + django!

 

ということで、linux環境からherokuでdjango動かすまでの備忘録。っていうかherokuガイドの日本語訳w

詳しいやり方はherokuのstartガイド参照↓

https://devcenter.heroku.com/articles/getting-started-with-django

 

ちなみにdjangoデプロイするときにherokuのwsgirefのpipインストールの時に

python3系だと何故かコケちゃうので、バージョンは2.7でデプロイしてます。

 

1. pipとかのインストール

 

※もしかしたらpython-setuptoolsインストールしなくてもイケるかも。

※sudo pip installとかやるとルートユーザ権限で実行される関係で、venvの環境外にインストールされちゃうっぽい。

 

2. djangoアプリ作成

 

3.Procfile(設定ファイル)作成

で、以下を入力↓

web: gunicorn hellodjango.wsgi

 

4. django起動確認

でブラウザでhttp://localhost:5000を開き、”It Worked!”が出ていることを確認。

 

5. インストールされているパッケージ一覧をrequirements.txtに記述

 

6. あとはお馴染みのherokuのデプロイコマンド

 

7. DB関連の設定

settings.py

 

wsgi.py

 

ローカルとの差異で注意すべきところは

dj_database_url.config() で取ってくるのは環境変数のDATABASE_URLの値になるので、

って感じで「ローカルに環境変数が定義されていなければ環境変数定義する」 的な記述をしておく。

あとはherokuにデプロイしたあとにheroku側でコマンド実行(heroku run)

 

※Pythonのバージョンを設定する場合は

アプリのルート直下にruntime.txtってのを配置して、runtime.txt内にpython-3.3.2って書けば良い。

サポートしているバージョンは以下の3つ

python-2.7.4(runtime.txtが無いときのデフォルトバージョン)

python-3.3.2

pypy-1.9

 

ちなみにdjangoアプリのディレクトリ内でlsするとこんな感じ↓

Procfile  hellodjango  manage.py  requirements.txt runtime.txt

 

結局はDBの設定とProcfile, requirements.txt, runtime.txt入れるだけ動きます。

基本requirements.txt以外は一回設定したら二度と設定しないので

heroku用のテンプレート作っても良いっすね。