Python micro frameworks are all the rage these days

May 11, 2009

It’s never been easier to setup a web app:

web.py has some additional features, but can also be considered as a micro framework.

I prefer the url dictionnary approach (mnml, newf, webpy) to the decorator approach (juno). djng is bit different, routing is based on the django module (from django.conf.urls.defaults import url).

micro frameworks + key-value stores are a match made in heaven for webservices development.

Update: Travis has posted a shallow review of these frameworks.

As of now, this post has 15 comments — read them below:

May 12, 2009 05:10:30

Please review these micro frameworks and discuss the pros/cons of each. It's hard to choose which one to use.

— EJ

May 12, 2009 05:14:54

Why isn't CherryPy, Pylons and TurboGears on your list?

— Mathew

May 12, 2009 05:39:42

No way. None of those should be on the list.

— EJ

May 12, 2009 09:11:29

werkzeug?

— RonnyPfannschmidt

May 12, 2009 09:29:47

@Mathew : CherryPy, Pylons , TurboGears, while excellent, are not micro frameworks. They offer richer features, at the expense of complexity sometimes. I'd rather run mnml for prototyping than TurboGears. I guess it's just a matter of preference though

@EJ : good idea. mnml is my favorite so far, mainly because I'm familiar with the routing module which is very similar to what web.py & Google App Engine have implemented

— Tim

May 12, 2009 06:01:36

Thanks for being so thrilled, it makes me all goose-bumpy.

Anyway, I was just wondering why EJ doesn't go and do his/her own bloody research ?

— Alan

May 12, 2009 08:31:20

werkzeug!

— tom

May 12, 2009 11:44:11

@Ronny & @tom : thanks for pointing out that werkzeug is missing from the list. I had never heard of it prior to your comments.

— Tim

May 13, 2009 06:02:03

werkzeug!

— chris

May 18, 2009 09:26:11

You don't even need a framework. I went through the basics at the Michigan Python Users group a couple of months ago, recorded for posterity:

http://blip.tv/file/1782997

I think that roll-your-own is a great way to go for web services. If you're making a more traditional web app, I'd go with one of the full stack frameworks (I'm partial to TurboGears 2 for obvious reasons ;)

— Kevin Dangoor

May 18, 2009 11:39:34

@Kevin Great video. I've learned a lot while watching it — especially the virtualenv trick.

I think I'll go with web.py for serious web services, and build my own to play with WSGI ;)

— Tim

September 10, 2009 09:16:13

I think you should be adding BFG to your list as well.

http://bfg.repoze.org

Its fantasic, great docs and test coverage

— Mr. Jelly

September 27, 2009 11:33:05

I did a very shallow review of these microframeworks, which is available here:

http://www.subspacefield.org/~travis/python_microframeworks.txt

I may be adding to it later. I've got another project I was going to do in Pylons, but it is so complicated that it's a mammoth undertaking.

The review is not very in-depth, but a lot of these frameworks are so small you can actually read the source in a short period of time and form your own judgements.

— Travis H.

September 28, 2009 05:15:24

@travis thanks for the review. I’ve played with these micro frameworks, but found out that web.py (and its twins : webapp on Google AppEngine and Tornado) have everything I need without all the bloat.

— Tim

November 2, 2009 12:04:52

Please try bottle (http://wiki.github.com/defnull/bottle), it's really really small, and the syntax is really simple (decorator based). It doesn't have ANY dependency (http://bottle.paws.de/ for the examples)

— Lior Gradstein

Have something to say ? Leave a comment then :

About

Hi, I’m Tim. I work as a Web Developer / geek for a Web Agency. I’m 27 years old and I currently live in Paris. Oh! , and I love Twitter :)