Google App Engine with django

とりあえずSDKをインストールして簡単なアプリを作成してみた。
Google App Engine Documentation  |  App Engine Documentation  |  Google Cloudを一通りやったあと、djangoでアプリを作ってみたけどちょっとはまったので書いておきます。
ちなみにpythondjangoも初めてさわったので間違ってるところがあるかも。

まずはbootstrap

Getting Started With Django  |  Python  |  Google Cloudそのままだとダメだった。

# Google App Engine imports.
from google.appengine.ext.webapp import util

from django.core.management import setup_environ
from mysite import settings
setup_environ(settings)


# Force Django to reload its settings.
from django.conf import settings
settings._target = None

import django.core.handlers.wsgi
import django.core.signals
import django.db
import django.dispatch.dispatcher

# 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()

Google グループGoogle グループを参考にしました。

djangoアプリを作る

 $ django-admin.py startproject mysite

settings.pyを編集する

Getting Started With Django  |  Python  |  Google Cloudの Updating Django Settings のように設定する。が、やっぱり動かず。
ファイルの先頭に import os を追加したらOKでした。

とりあえず動作確認

app.yamlを作成する。

application: test
version: 1
runtime: python
api_version: 1

handlers:
  - url: /static
    static_dir: static

  - url: /.*
    script: main.py

これでdev_appserver.pyを実行して開発用のサーバーを起動してhttp://localhost:8080/を確認すると、djangoのデフォルトのページらしきものが表示された。