Disclaimer: this is more of an personal opinion rather than a more true technical comparison.
Flask and Web.py are these Python micro-architectures for building web sites and applications. Django is also a Python framework for building websites but it's whale huge so Django is out.
The age of the framework matters because it helps you "find stuff" for it; find stuff, I mean like StackOverflow pages, blog entries, github projects and such. Also it makes for a good chance that someone already has solved your problem and was good enough to post it somewhere on the web.
Web.py is older and Flask is a bit more recent.
I like new.
Programmers and coders eventually develop a particular "taste" on how to write or organize code. This is another bias of mine because I prefer how Flask's code looks vs Web.py's.
Let's take both framework's "hello world" examples.
This is Flask's way:
from flask import Flask app = Flask(__name__) @app.route("/") def hello(): return "Hello World!" if __name__ == "__main__": app.run()
This is Web.py's way:
import web urls = ( '/(.*)', 'hello' ) app = web.application(urls, globals()) class hello: def GET(self, name): if not name: name = 'World' return 'Hello, ' + name + '!' if __name__ == "__main__": app.run()
I like annotations better than route lists but that's just me.
I have a pretty simple use case because I only run these things in a Google app engine instance. Both flask and web.py are supported by GAE.
Here's a flask starter for GAE and here's the web.py cook book page for GAE.
I still like Flask.
In the end
Personally, I think the question is relatively moot since both micro-frameworks do roughly the same thing. Although, web.py is older it is still actively developed and it's community is still ticking. Flask is newer but it's still a bit rough around the edges.
I'm a Flask kind of guy.