Skip to content


Subversion checkout URL

You can clone with
Download ZIP
A streamlined django setup for appengine
Python Shell

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.

A streamlined Django 1.4 and App Engine integration.


Google Appengine Python SDK 1.7.5+

Getting started

Run locally:

git clone
cd djappengine

Visit http://localhost:8080 to marvel at your work.

Now deploy to appspot, first set up an app on and replace application in app.yaml with the name of your app (in your text editor or like this):

sed -i '' 's/djappeng1ne/myappid/' app.yaml

You're ready to deploy: update .

The Django app in core is there to get you started. Have a look around.

Local shell

With your local server stopped, open a python shell and play with your local data:


Running tests

python test core
Ran 1 test in 0.000s

djappengine uses a custom test runner that doesn't try to use a database. This is because djappengine is designed primarily to be used with App Engine's models, and not with Django's ORM. If you're using CloudSQL, comment out the TEST_RUNNER line in

core/ is an example test that sets App Engine's testbed.

So what's going on?


  • Sets up static resources
  • Points all other paths to the WSGI app

  • Sets the DJANGO_SETTINGS_MODULE environment var
  • Routes logging for production
  • Defines the WSGI app

  • Uses path-fixing mechanisms in order for tests to run properly

  • Usual Django defaults
  • Sets the SESSION_ENGINE to a custom memcache/datastore session backend


  • Uses various internal SDK functions to set up the system environment in such a way that things will run in the context of Appengine's service stubs


  • So App Engine's memcache is seen by django


  • A custom test runner that lets you use Django's simple test runner to run tests with App Engine's testbed and without a database.


  • A simple example app to get you started

What's missing

Something missing? please raise an issue.

Something went wrong with that request. Please try again.