環境
- Mac
- Python2.7
- Google App Engine SDK for Python
が入っている環境での作業です。
Djangoアプリの作成
まず、プロジェクトを作成します。
ここではgaedjangoとしています。
SDKに含まれているdjangoを使う場合は、下記のようになります。
他の環境の場合は適宜修正して下さい。
$ export PYTHONPATH='/usr/local/google_appengine/lib/django-1.5/'
$ /usr/local/google_appengine/lib/django-1.5/django/bin/django-admin.py startproject gaedjangoapp
gaedjangoappディレクトリにプロジェクトが作成されます。
app.yamlファイルの作成
GoogleAppEngineのアプリケーションはapp.yamlというファイルで
アプリケーションの設定をする必要があります。
Python Application Configuration with app.yaml
application: gaedjangoapp
version: 1
runtime: python27
api_version: 1
threadsafe: yes
libraries:
- name: django
version: "1.5"
builtins:
- django_wsgi: on
appengine_config.py
SDKのDjangoを使う場合はPYTHONPATHの設定をします。
Django1.5の場合は、DJANGO_SETTINGS_MODULEの設定もします。
# -*- coding: utf-8 -*-
import os
import sys
if os.environ.get('SERVER_SOFTWARE','').startswith('Dev'):
sys.path.append('/usr/local/google_appengine/lib/django-1.5/')
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "gaedjangoapp.settings")
開発用サーバーの起動
通常、djangoのアプリでは、
$ python manage.py runserver
で開発用サーバーを起動しますが、
今回はGoogleAppEngineなので、
$ dev_appserver.py .
で起動します。
この状態で、http://localhost:8080にアクセスすると、
It worked!
と初期状態の画面が表示されます。
helloアプリの作成
HelloWorldと表示するアプリを作成します。
$ python manage.py startapp hello
でhelloディレクトリに空のアプリが作成されます。
次に、hello/view.pyを下記のようにします。
# -*- coding:utf-8 -*-
from django.http import HttpResponse
def index(request):
return HttpResponse("Hello, world.")
次に、urls.pyを設定します。
from django.conf.urls import patterns, include, url
urlpatterns = patterns('',
(r'^$', 'gaedjangoapp.hello.views.index'),
)
最後にsettings.pyにアプリケーションを追加します。
INSTALLED_APPS = (
~~~~~
# Uncomment the next line to enable the admin:
# 'django.contrib.admin',
# Uncomment the next line to enable admin documentation:
# 'django.contrib.admindocs',
'hello',
)
この状態で、http://localhost:8080にアクセスすると、
Hello, world.
と表示されます。