django-skelの使い方
基本は 公式ドキュメント の丸写しで、自分用メモです。
プロジェクトの作成
startprojectコマンドは、 --template= 以下のURLにある
プロジェクトテンプレートでプロジェクトを作成することができる。
my_project という名前のプロジェクトを作成。
$ django-admin.py startproject --template=https://github.com/rdegges/django-skel/zipball/master my_project
アプリケーションを作成
django-skelではアプリケーションはapps/内に作成する。
mkdir my_project/apps/myapp
git コミット
$ git init $ git add .; git commit -m 'First commit'
pip でライブラリをインストール
以下コマンドで、django-skelで定義されている
必要なライブラリを自動でインストールしてくれる。
pip install -r reqs/dev.txt
ローカルで動かしてみる
$ python manage.py syncdb $ python manage.py migrate $ python manage.py runserver
Herokuにアプリケーションを作成
heroku create [your_app_name_here]
gitでpushする
git push heroku master
Heroku のアドオンを追加する
$ heroku addons:add cloudamqp:lemur $ heroku-postgresql:dev $ scheduler:standard $ memcachier:dev $ newrelic:standard $ pgbackups:auto-month $ sentry:developer
cloudamqp
タスクキューイングを実行するためのアドオン。
heroku-postgresql
scheduler
cronみたいにジョブを定期実行。
memcachier
キャッシュ。
newrelic
アプリケーションのモニタリング。
こちらに詳しく書いてます。
Heroku のDjangoアプリケーションに便利なパフォーマンス監視ツール "New Relic" を導入するhttp://source.hatenadiary.jp/entry/2013/02/07/142042
pgbackups
PostgreSQLのバックアップツール。S3に自動バックアップしてくれる。
sentry
デバック用のエラー集約ツール。
環境変数を設定
# S3用の設定 $ heroku config:add AWS_ACCESS_KEY_ID=xxx $ heroku config:add AWS_SECRET_ACCESS_KEY=xxx $ heroku config:add AWS_STORAGE_BUCKET_NAME=xxx #settingsファイルの設定 heroku config:add DJANGO_SETTINGS_MODULE=my_project.settings.prod # ランダムな40桁の文字列を設定 $ heroku config:add SECRET_KEY=xxx
40文字の文字列の取得方法は以下
from random import choice print ''.join([choice('abcdefghijklmnopqrstuvwxyz0123456789!@#$%^&*(-_=+)') for i in range(50)])
静的ファイルをS3にアップロード
$ heroku run python manage.py collectstatic --noinput $ heroku run python manage.py compress