When comparing web.py vs Klein, the Slant community recommends web.py for most people. In the question“What are the best general-purpose Python web frameworks usable in production sites?” web.py is ranked 13th while Klein is ranked 20th. The most important reason people chose web.py is:
Web.py is pretty easy to set up and start working with.
Ranked in these QuestionsQuestion Ranking
Pros
Pro Easy to set up and work with
Web.py is pretty easy to set up and start working with.
Pro More concurrent requests, more interactivity
The fact that a Klein server is event-driven and non-blocking means that it can start handling a new request while previous requests are still open. This lets you serve more requests from a single process, meaning running multiple servers is now an option to be explored when your site makes it big, rather than a necessity for responsiveness under even modest loads.
Multiple requests per process also gives you flexibility to do things that would be impractical in WSGI-based alternatives like Flask or Bottle, such as keeping a connection to the browser open to send it chat messages or game updates in a Server Sent Event stream.
Cons
Con Can feel constraining to work with
web.py does not have an ORM like Django, and it misses a lot of other features that it's competitors have. This can make developers feel too much constrained by this framework.
Con Lacks database integration
Talking to database is a pretty common thing for a web application to do. Larger frameworks know this, and cover it in some detail by the end of the tutorial. In contrast, the Klein documentation is currently silent on this topic, leaving the issue of how to do database queries in a way that won't block your event-driven code entirely up to you.