In the past week I learned Flask, a very young and promising python framework. I have already learned Django, Cherrypy, Web2Py and TurboGears.
Anyway, if you are planning a medium sized project, I like to suggest you Flask, because of these feature:
- flask is very compact.
For instance, you can plug in it your preferred ORM (like SQLAlchemy).
Anyway, the basic foundation API is very well shaped and coherent, and you can see it form the step-by step tutorial.
- extensively documented
This is very, very important. I have a very bad experience with cherrypy 3, because it was not organically documented and it was a pain to assemble different behavior from different examples.
It could be my fault, but I eventually give up on cherrypy. I have also bad experience with other framework, and I happy Flask documentation is fluent, full of examples and well organized with also a “Becoming Big” chapter.
- built-in development server and debugger like web2py.
The debugger is very well done, because give you the ability to inspect the stack trace variables in a very fast way.
- It is very very easy to deploy flask in production (flask is “100% WSGI 1.0 compliant”)-
Also the configuration is even more flexible than the Django one, giving you plenty of solution for every production need.
- A very strong extension mechanism: there is already an extension repository, and it is quite easy to build your own.
This thing is very important and give you a spin.