Tornado is great as a standalone API/WWW server, but for WSGI-based environments, like Google App Engine, I would choose Flask (>= 0.7.1) over any other framework. Flask, despite being a micro-framework, is extremely powerful. It's core is well-written and there's a lot of useful extensions out there (like Flask-WTF or Flask-Assets). Flask also works really well with Google App Engine (see example skeleton: https://g…
Ask HN: Best Python Framework for Google App Engine?
31–40 of 48 posts
Re: Ask HN: Best Python Framework for Google App Engine?
#32A nice alternative to the built-in webapp framework is webapp2: http://code.google.com/p/webapp-improved/ It's basically a superset of webapp with some great additions and tweaks.
If you use nothing else, the extended routing functionality and lazy loading of handlers are big improvements and are pretty painless to implement.
Re: Ask HN: Best Python Framework for Google App Engine?
#33Earlier quoted context omitted.
The real answer is "anything but Django." Django is a great framework, but not for GAE. I've used tipfy.org
Why is Django(-nonrel) a poor choice for GAE?
Re: Ask HN: Best Python Framework for Google App Engine?
#34(The inevitable restrictions imposed by BigTable still apply, see http://www.web2py.com/AlterEgo/default/show/138).
Re: Ask HN: Best Python Framework for Google App Engine?
#35Earlier quoted context omitted.
Why is Django(-nonrel) a poor choice for GAE?
You 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.
Re: Ask HN: Best Python Framework for Google App Engine?
#36For reasons that escape me, web2py doesn't seem to get much love, but deploying a web2py app to GAE takes all of 5 minutes. Web2py uses a DAL instead of an ORM, which means it's much easier to use the same data model on the non-relational datastore. (The inevitable restrictions imposed by BigTable still apply, see http://www.web2py.com/AlterEgo/default/show/138 ).
(apparently the documentation doesn't mention any datastore feature it doesn't support but the last time I checked it did not support at least transactions)
Re: Ask HN: Best Python Framework for Google App Engine?
#37Earlier quoted context omitted.
You 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.
Okay, 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.
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.
Re: Ask HN: Best Python Framework for Google App Engine?
#38I like Bottle: http://bottlepy.org/docs/dev/
I've used bottle for many projects and I'm very happy with it. A new version was just released a few days ago as well.
Re: Ask HN: Best Python Framework for Google App Engine?
#39I like Bottle: http://bottlepy.org/docs/dev/
I've used bottle for many projects and I'm very happy with it. A new version was just released a few days ago as well.
http://martin.tecnodoc.com.ar/default/post/2011/05/25/21_bot...
Re: Ask HN: Best Python Framework for Google App Engine?
#40For reasons that escape me, web2py doesn't seem to get much love, but deploying a web2py app to GAE takes all of 5 minutes. Web2py uses a DAL instead of an ORM, which means it's much easier to use the same data model on the non-relational datastore. (The inevitable restrictions imposed by BigTable still apply, see http://www.web2py.com/AlterEgo/default/show/138 ).
Does the web2py database abstraction layer support datastore transactions and query cursors? Or what datastore features it doesn't support? (apparently the documentation doesn't mention any datastore feature it doesn't support but the last time I checked it did not support at least transactions)
http://martin.tecnodoc.com.ar/default/post/2011/05/25/21_bot...