Eclipse で GAE 1.6 + Python 2.7 + Django 1.2
環境を作る機会があったので、メモとして残しておきます。main.pyに気をつければ、特に難しいことはないです。
インストール
当たり前の話ですが、EclipseおよびPyDev、Python 2.7、GAE SDK 1.6を入れておく必要があります。この際の注意点は、Djangoのインストールが必要ないということです。*1
プロジェクト
PyDev Google App Engine Project で、プロジェクトを作ってやります。空のプロジェクトでOKです。特に難しいところはないですが、${GOOGLE_APP_ENGINE}のパスは、覚えておくほうがいいです。
GAE
GAEで必要なファイルをカレントに作ります。
- app.yaml
application: gae_application_id version: 1 runtime: python27 api_version: 1 threadsafe: true libraries: - name: django version: "1.2" handlers: - url: /.* script: main.app
- main.py
import os import sys path = 'src' if path not in sys.path: sys.path.append(path) os.environ['DJANGO_SETTINGS_MODULE'] = 'djangoproj.settings' import django.core.handlers.wsgi app = django.core.handlers.wsgi.WSGIHandler()
app.yamlは、Python2.7用になっています。main.pyでpathの設定していますが、これは、Eclipseのsrcディレクトリ内にDjangoをおくための処置です。srcディレクトリを使わないなら必要ありません。
Django
GAEのdjango-admin.pyを使います。Djangoのパス*2を通しておく必要があります。
Eclipseのsrcディレクトリ上で、
$ django-admin.py startproject {djangoproj(任意)}
$ cd djangoproj
$ django-admin.py startapp {djangoapp(任意)}
として、Djangoの環境を整えてやります。これで、好きなようにDjangoを使えるはずです。
一応、以降、確認用にコードを書いておきます。
- src/djangoproj/djangoapp/views.py
from django.http import HttpResponse def index(request): return HttpResponse("Hello World.")
- src/djangoproj/settings.py
: ROOT_URLCONF = 'djangoproj.urls' : INSTALLED_APPS = ( 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.sites', 'django.contrib.messages', 'djangoproj.djangoapp', )
- src/djangoproj/urls.py
from django.conf.urls.defaults import * urlpatterns = patterns('', (r'^$', 'djangoproj.djangoapp.views.index'), )
最終的なディレクトリはこんな感じ。
gae_application_id\ ├ src\ │ └ djangoproj\ │ ├ djangoapp\ │ │ ├ __init__.py │ │ ├ models.py │ │ └ views.py │ ├ __init__.py │ ├ manage.py │ ├ settings.py │ └ urls.py ├ app.yaml ├ favicon.ico └ main.py
Eclipseの実行環境を整えてやれば、たぶんこれで動くはず。:P