Google App EngineでDjangoを使う Part1
Google App Engineで、フレームワークとしてDjangoを使うときの手順や設定などのメモ。
準備
App Engine Accountの取得
http://code.google.com/appengine/
App Engine Accountの取得は携帯電話のメールで認証をするみたいです。携帯電話必須?
てか宛先ドメインの一覧にiPhone(@i.softbank.ne.jpとか@me.comとか)が無いなんて止めてほしい。仕方なくもう1台のdocomoを使用。
必要なもの
それぞれをダウンロードしてインストールおよび設定をします。以降の説明は、デフォルトのインストールパスを想定しています。
プロジェクトの作成
プロジェクト名「ouipandatest」で「C:\Program Files\Google」フォルダにDjangoプロジェクトを作成
※プロジェクト名は各自変更して読み替えてください。同じ名前でApp Engineのサーバにアップロードすることはできません。
cd C:\Program Files\Google
django-admin.py startproject ouipandatest
settings.pyのROOT_URLCONFを「urls」に変更
ROOT_URLCONF = 'urls'
ouipandatestフォルダに以下の内容のファイルを作成
[app.yaml]
application: ouipandatest version: 1 runtime: python api_version: 1 handlers: - url: /static static_dir: static - url: /.* script: main.py
[main.py]
import logging, os # Google App Engine imports. from google.appengine.ext.webapp import util # Force Django to reload its settings. from django.conf import settings settings._target = None # Must set this env var before importing any part of Django os.environ['DJANGO_SETTINGS_MODULE'] = 'settings' import logging import django.core.handlers.wsgi import django.core.signals import django.db import django.dispatch.dispatcher def log_exception(*args, **kwds): logging.exception('Exception in request:') # Log errors. django.dispatch.dispatcher.connect( log_exception, django.core.signals.got_request_exception) # Unregister the rollback event handler. django.dispatch.dispatcher.disconnect( django.db._rollback_on_exception, django.core.signals.got_request_exception) def main(): # Create a Django application for WSGI. application = django.core.handlers.wsgi.WSGIHandler() # Run the WSGI CGI handler with that application. util.run_wsgi_app(application) if __name__ == '__main__': main()
App Engineのデバッグ用サーバ起動
python google_appengine/dev_appserver.py ouipandatest
「http://localhost:8080/」にアクセスしてローカルで動作確認。PythonやDjangoの設定が正しければ「It worked!」と表示されるはず
アップロード
App Engineの管理画面(http://appengine.google.com/)で「ouipandatest」という名前のApplicationを作成(app.yamlの記述と合わせる必要があります。)
サーバにアップロード
cd C:\Program Files\Google
appcfg.py update ouipandatest/
「http://ouipandatest.appspot.com/」にアクセスして動作確認。ローカルでの実行結果と同じく、「It worked!」と表示されるはず。