django+mysqlでdotcloudを始める #dotcloud #git #django

githubに置いてあるのでそこからどうぞ
https://github.com/ukyo/dotcloud-django

githubにのほうにも書いてあるんですが下のようにすればdjangoのアプリができるはず。
dotcloud create your-app-name
git clone git://github.com/ukyo/dotcloud-django.git your-dotcloud-project
cd your-dotcloud-project
dotcloud push your-app-name
dotcloud run your-app-name.www python current/mysite/manage.py syncdb

それでもってdotcloudはカレントディレクトリに.gitがあるとgitレポジトリ的な動きをするので、なんか変更したときは下のような感じでアップロードできる。
git add .
git commit -m 'message'
dotcloud push your-app-name

ただしpullとかはできないっぽい。できたら便利なんだけどな。

仕組み:
mysql
dotcloudでは環境設定的な情報は/home/dotcloud/environment.jsonに入っているのでそこから下のような感じで読み込んでsetting.pyを動的に編集する。
import json
dotcloud_env = json.load(open('/home/dotcloud/environment.json'))

DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'mysql',
'USER': dotcloud_env['DOTCLOUD_DB_MYSQL_LOGIN'],
'PASSWORD': dotcloud_env['DOTCLOUD_DB_MYSQL_PASSWORD'],
'HOST': dotcloud_env['DOTCLOUD_DB_MYSQL_HOST'],
'PORT': dotcloud_env['DOTCLOUD_DB_MYSQL_PORT'],
}
}

template置き場
/home/dotcloud/currentが色々アップロードしたファイルどものルートなので/home/dotcloud/current/django_templates/を作ってそこにテンプレート置くようにする。もうちょっとうまいやり方がある気がするけど、とりあえずこれで。
TEMPLATE_DIRS = (
'/home/dotcloud/current/django_templates',
)

今のところの問題点としてはこのままだとローカル環境で動かないので修正する必要あり。多分すぐ直せるかな。

追記:
開発環境用のsettings.pyを書いた。修正箇所は以下。
import os
import json

#If local DEBUG is True.
DEBUG = os.environ['USER'] != 'dotcloud'

#...

#load mysql environment.
if DEBUG:
env_path = os.path.abspath('../local_environment.json')
else:
env_path = '/home/dotcloud/environment.json'

dotcloud_env = json.load(open(env_path))

#...

TEMPLATE_DIRS = (
os.path.abspath('../django_templates'),
)

mysqlの設定はルートにあるlocal_environment.jsonに書けばOK。あと、settings.pyのSECRET_KEYは適宜書き換えてね。





posted by 右京 | Python
blog comments powered by Disqus
×

この広告は180日以上新しい記事の投稿がないブログに表示されております。