"Google App Engine: To Django or to webapp?" Revisted
When I was first starting out with Google App Engine (GAE), I wrote a short post detailing my thoughts on whether to use Django or Google's own webapp framework for GAE projects. In that post, I concluded that "there isn't a compelling reason to use Django at the moment with GAE".
Since then, I've re-evaluated my decision and, a few weeks ago, I ported the Singularity web app to Django from webapp.
Here are the main factors that contributed to my decision:
- I wanted to use features in the latest Django trunk (0.97+) and the Google App Engine SDK ships with 0.96. I also did not want to be tied in to updates from Google for the Django framework.
- Google released the Google App Engine Helper for Django which makes it very simple to set of a GAE Django app.
- And, finally, looking through the source of Rietveld, I saw that Guido van Rossum is using Django for his Google App Engine app. And heck, I think he knows a thing or two that I may not.
Going with Django means that you can take advantage of more existing functionality (Django middleware, etc.) and, should you want to move away from Google App Engine in the future, there will be less code to rewrite. (Though, realistically, if you're doing anything with data, you're pretty much tied in to the DataStore at the moment until there is a suitable, scalable alternative that you can port to without completely refactoring your data layer.)
So my new take on this is that it makes a lot of sense to build Google App Engine applications using Django instead of pure webapp.
To get started, check out the Google App Engine Helper for Django.