LoginSignup
38
38

More than 5 years have passed since last update.

GoogleAppEngine/PythonでDjangoを使う方法

Last updated at Posted at 2013-10-14

環境

  • 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

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の設定もします。

appengine_config.py
# -*- 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を下記のようにします。

hello/view.py
# -*- coding:utf-8 -*-

from django.http import HttpResponse
def index(request):
    return HttpResponse("Hello, world.")

次に、urls.pyを設定します。

gaedjangoapp/urls.py
from django.conf.urls import patterns, include, url

urlpatterns = patterns('',
    (r'^$', 'gaedjangoapp.hello.views.index'),
)

最後にsettings.pyにアプリケーションを追加します。

gaedjangoapp.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.
と表示されます。

38
38
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
38
38