With app-engine-patch a major part of Django works on App Engine without any modifications. The most important change is that you have to use Google's Model class because the development model is too different from Django.
We also provide lots of useful extra features that simplify Django and App Engine development.
Latest release: 0.9.2 on Nov 19, 2008
Download and see release notes for details.
Quickstart
Extract the sample project. Run the dev_appserver with manage.py runserver. Upload your website with manage.py update (don't forget to set your appid in app.yaml). Read more...
Feature highlights
app-engine-patch
- manage.py support
- Django's authentication framework (i.e.: no need for Google accounts!)
- optional support for authentication via Google Accounts (nicely integrated with Django)
- Django's db and cache session backends
- Memcache support
- Support for Django's mail functions
- Slightly more complete ModelForms in django.forms package
- Django's testing framework
- Replacement for httplib (should work with boto)
- Easy to use zip packages
- Integrated profiler
- Support for generic views (list_detail, create_update, and simple)
- Model serialization/deserialization
ragendja (snippet library)
- Improved auth framework: You can provide your own User class (simplifies your code compared to using get_profile())
- LoginRequiredMiddleware that saves you from adding @login_required to most of your views
- render_to_response() based on RequestContext
- An improved template loader that gets rid of file name prefixes
- Global templatetags
- @transaction decorator, so you can't forget to call a function with db.run_in_transaction
- JSONResponse
- ModelTestCase that allows for verifying the DB contents
- and more
Comparison to google-app-engine-django (appengine-helper)
Conceptual difference: We don't try to emulate Django's Model because that's impossible, anyway.
Extra features:
- We provide nice goodies in our ragendja snippet library
- Django's auth framework with optional Google Accounts support (the Helper only supports Google Accounts)
- httplib and boto support
- Integrated profiler
- Generic views
- Easier to use zip packages
- Windows users don't need to install pywin32
Missing features: None! Woohoo! Doesn't that make the decision easy? :)
Philosophy
This project will only provide patches for Django subsystems that have an App Engine-compatible development model. For example: Since the datastore is very different from relational databases we don't intend to implement a wrapper that fakes Django's Model API.
The patches must be "seamless". This means that everything should just work without having to change imports unless Django's API is incompatible with Google's API.
Whenever possible replacement/patch modules must be loaded lazily (on-demand), so loading times are reduced and resources don't get wasted.
Don't reinvent the wheel. We steal the best ideas from our competition (app-engine-helper, etc.) and improve them.
