Google App Engine First Impressions
For those of you that have been hiding under a rock for the last 12 hours, App Engine is Google’s answer to Amazon Web Services. While it is less flexible in some senses (you don’t have a complete OS at your disposal), it does provide tighter integration for web applications and even includes a (somewhat crippled) version of Django out of the box.
I’m pretty excited about this mainly because I’m not a big fan of server administration, so I took a couple hours this morning to test it out. Here are some quick notes:
The Good
- It sort of works with Django
- Deployment is dead simple
- It handles user accounts and registration
- Every app gets a built in Admin Console with stats, version management and datastore CRUD capability
- You can add your own Python libraries
- And, of course, it will scale on the fly
The Bad
- Datastore is not a relational database
This excludes you from using models or anything that depends on them in Django, including the admin, sessions, the authorization framework. - Only pure Python libraries can be used and some libraries are disabled
The Ugly
- YAML configuration files
- Admin CRUD interface is no match for Django’s, see screenshots below.
Other Observations
- Much of the API is clearly influenced by Django making transitioning easier.
- Pricing has not been released, but from this statement, it appears they will have free accounts:
“For now, account registrations are limited to the first 10,000 developers, and applications are restricted to the free account limits.” - Generic views don’t work with the datastore queries ‘Query’ object has no attribute ‘_clone’
- The datastore admin interface only becomes active once you have saved an object for the model.
Screenshots
Adding an item to the Datastore

Conclusion
Despite its limitations, I think App Engine is going to be a great thing for the Django community and I can’t wait to host my apps there.
I started migrating my site over (lincolnloop1.appspot.com) with some quick hacks, but realized that creating a Django database backend for the App Engine Datastore (a.k.a. BigTable) is going to be the best route. I’m not a database guru and I haven’t dug into Django’s database internals, but it looks feasible. The basic stuff is so close to Django that I’m hoping it will be pretty straightforward and we should be able to emulate more advanced queries with some Python magic. I’m happy to open up an app and I started a Google Code project django-appengine-backend for any developers that are interested in working on the project.
Comments
Comments are closed for this post.
Our Products
Categories
- accessiblity
- code
- company news
- django
- gondola
- open source
- portfolio
- presentation
- pro tip
- review
- screencast
- seo
- software
- subversion
- trailmapping
- wordpress
Archives
- July, 2010
- June, 2010
- May, 2010
- April, 2010
- February, 2010
- December, 2009
- November, 2009
- October, 2009
Elsewhere
What we’ve been up to online
-
Just launched a Flask/App Engine mini-site we've been tinkering on http://emailed-me.appspot.com/
Pete, 14 hours, 52 minutes ago -
created repository Emailed-Me-
Pete, 15 hours ago -
Our first iPhone development project hit the App Store last week and is already over 1k users! Check them out @takemyspot #iphone #geodjango
Pete, 3 weeks ago -
Love the new sites! RT @welikesmall: We just launched two new sites. http://post.ly/mGoq
Pete, 3 weeks, 1 day ago -
Pro tip: Using pip safely for automated deployment (no more pesky prompts) http://bit.ly/b5zsPa
Pete, 4 weeks, 1 day ago -
commented on justquick/django-mailfriend
Pete, 1 month ago -
RT @unbracketed: Excited to have @mitsuhiko joining us for some work this summer :)
Pete, 1 month ago -
New blog post: managing supervisord with upstart http://bit.ly/db3p5N
Pete, 1 month ago -
Troubleshooting OpenID is just like user/password. Except you have 5 of them and and you don't know which one is failing, and 3 login pages
Pete, 1 month, 1 week ago -
This gets very interesting around 42 min. Using javascript to snoop inside firewalled networks http://bit.ly/aNVPc5
Pete, 1 month, 2 weeks ago -
The final tally is in. 8 Lincoln Loopers attending DjangoCon. 3 US, 4 EU, and 1 NZ. Looking forward to it!
Pete, 1 month, 2 weeks ago -
Twitter / Dustin Curtis: I'm flying to Madrid tomor ...
Dustin Curtis travels to Berlin, Bangkok & Madrid in exchange for design services as the result of a late night tweet.
Pete, 1 month, 2 weeks ago -
created branch ubuntu-8.04 at lincolnloop/fab-pave
Pete, 1 month, 3 weeks ago -
created repository fab-pave
Pete, 1 month, 3 weeks ago -
pushed to master at lincolnloop/django-mailfriend
Pete, 1 month, 3 weeks ago





Hi,
Seems you’re using the DEBUG=True into your settings to lincolnloop1.appspot.com. Clue : http://lincolnloop1.appspot.com/blog/
Anyway, thanks for sharing your feelings about GAppEngine, with screenshots ! I’ve got a closer look to how the admin seems to be designed.
One thing that I also hate with google app engine is, it doesnt have a very good site admin. I wish that django will fully support google app engine platform in the future so that we dont need to use google app engine’s specific database api. Everything should be done by the framework under the hood