3 ms·
The most often mentioned is Django. We picked Tornado (tornadoweb.org) because it is lightweight and fast, especially on cold start, which is an app engine iss
by dfrankow 15y ago
The most often mentioned is Django.
We picked Tornado (tornadoweb.org) because it is lightweight and fast, especially on cold start, which is an app engine issue for low-traffic apps. It's even faster than webapp (!) because webapp loads the Django templating system.
We've been happy with Tornado, although it doesn't have as much support for some stuff (e.g., web forms). It does have a templating language which is just embedded python. I like having the power to have a reasonable "if" statement or "for" loop, even though most people believe that embedding complex logic in templates will produce spaghetti.
See also http://stackoverflow.com/questions/70913/which-python-framework-is-best-for-web-development-in-google-app-engine/3977237 http://stackoverflow.com/questions/70913/which-python-framew... and http://www.quora.com/What-is-the-best-Python-Web-Framework-that-runs-on-Google-Appengine-AND-on-dedicated-servers http://www.quora.com/What-is-the-best-Python-Web-Framework-t...
- jaaron 15y agoThe real answer is "anything but Django." Django is a great framework, but not for GAE. I've used tipfy.org
- endtime 15y agoWhy is Django(-nonrel) a poor choice for GAE?
- olifante 15y agoYou said it yourself. The Django ORM is designed for relational databases. Django-nonrel seems to work, but it's a second-class citizen in the Django world. Much of the appeal of Django resides in the ecosystem of pluggable apps, and most of them won't work or will fail subtly when running on GAE.
- endtime 15y agoOkay, fair point about the third party apps. But even without them, it's not obvious to me that writing a Django-nonrel app from scratch is the worst option available.
- olifante 15y agoDjango is a full-stack framework with a monolithic approach. The fact that it is possible to switch some of the components doesn't really mean that it is advisable to do so. I've worked with Django for 3 years, and in my opinion Django actually has a non-negligible learning curve. If you have to give up the benefits of the full-stack approach and of the Django ecosystem of pluggable apps, you might as well go with something simpler, such as Bottle or Flask, or choose a full-stack framework that officially supports GAE, such as web2py.
- Unregistered 15y agoI've tried django-nonrel as well - if you're not trying to get an existing django app running on app engine, I'd stay away from it. In practical experience, we saw our handlers taking 3-5 times longer when using Django-nonrel.