Using Appengine with Django, why it is pretty much unusable

By : Shabda Raaj

We are hard at work building, and are looking at the best places to deploy this. So when I heard about Appengine, with out of box Django support(gasp!) I was delighted. After using it for a day, and posting a tutorial, I am so disappointed.

Peeves in no particular order.

  • Appengine is a very constrained environment, so out goes any chance to run background jobs.
  • The ORM-API is very similar to Django, but yet the Django API is much better. modelobj.filter('attr =', value1).filter('attr2 =', value2) or modelobj.filter(attr = value1, attr2 = value2). Putting entity level operations on modelobj.manager is much cleaner that making them classmethods, as argued here.
  • Very half baked documentation. Releasing without sufficient testing on windows. If you follow the Getting started guide, and are on windows, I hope you like debugging regexes
  • NO JOINS? Ok so I can use obj.master to simlute this. Umm can I get GROUP BY? What about UNION? Admittedly Bigtable is not relational, but are you telling me Google built all their search without a way to simulate GROUP BY.
  • PDB does not work on dev server. With Django's dev server, I put breakpoints with PDB all the time, and it works perfectly. With Appengine devserver, pdb will give you BDBQuit exceptions. I hope you enjoy debugging by reading logfiles.
  • Modules used by django are empty.
  • You can not start a dbshell on the dev server. (And django-admin framework does not work). When I am coding, I write the data insertion views first, and then the other views. Whether the Insert views are working or not can be checked immediately, from the db shell, or from admin. Here until I write the other views, I can not check on my create view.

The other flaws I can live with, but a dbshell not working and pdb breakpoints raising exceptions make this unusable for me. I guess I will stick with Django on a normal web host, and look at EC2, when we really need to scale.

Related Posts

Can we help you build amazing apps? Contact us today.


r.j. 9th April, 2008

if you're using windows to develop django apps, you're doing it wrong


I'm developing using django on windows, and more than a year now, nothing went wrong ?!?

kbdamm 10th April, 2008

re: dbshell for AppEngine

One of the sample applications released when AppEngine came out is Shell:

You can download the source from the Shell application:

It offers a python shell that can access your application's data and code, so used properly it should be able to do what you want dbshell to do; just put it on an admin page (use login: admin in your .yaml file to easily keep others out).

Sure, it's not a command-line tool, but it effectively gives you dbshell on a page within your application. Hopefully this helps.


Thanks Kbdamm, I guess I will take a look at shell and find if that suits my needs.


another worth mentioning is django app on appengine will gets you high cpu quota over limit on the google server on all hits, even serving a simple static webpage ... this is utterly useless :(

james 21st Dec., 2009

I recommend you have a read of this. A number of the constraints that you have, are the ones that you would reach once, your scale gets large enough. AppEngine just enforces those constraints on you 'early'. But by doing so, and by taking into account & working round some of the quirks, you can be sure that your application will scale.
By making those changes early, before having to rearchitect the entire system (because of bottlenecks etc) yeah you get extra overhead, yeah you have to do things in what seems at first an arseaboutface manner, but the pain now is several orders of magnitude less than having to learn these things later down the line...

Snake Jordan 17th Feb., 2010

It would be interesting to read what you think about

King 18th Jan., 2011

This post simply tells me that, you dont know how to use the technologies if you feel its unusable. And i saw another post of you it agin proofs that you dont know how to use the technologies.

Post a comment Name :

Email :

Your site url:

Comment :

© Agiliq, 2009-2012