When comparing Tornado vs CherryPy, the Slant community recommends Tornado for most people. In the question“What are the best general-purpose Python web frameworks usable in production sites?” Tornado is ranked 7th while CherryPy is ranked 9th. The most important reason people chose Tornado is:
Tornado can scale to several open connections at the same time. This makes it perfect for applications where performance is very important.
Ranked in these QuestionsQuestion Ranking
Pros
Pro Designed for performance
Tornado can scale to several open connections at the same time. This makes it perfect for applications where performance is very important.
Pro Amazing asynchronous functionalities
Pro Robust configuration mechanism
It's very easy to choose what processes you want by turning them on or off. You can also configure per-URL as well.
Pro Has production-ready server
Comes with a production level wsgi server that can be used instead of / in addition to gunicorn etc.
Pro Helps you organize the structure of your code
CherryPy provides some dispatcher patterns that support a wide range of functionality and provide some helpful ways of organizing the code.
Cons
Con It's usually useful only when building real-time web applications
Because it's basically a framework for building real-time applications it has great support for things like WebScokets and uses non-blocking I/O. But it lacks in features that are used to build general-purpose websites like blogs, e-commerce sites, web portals etc...
For example it lacks ORM integration (at least out of the box) and it doesn't have a very powerful template engine.
Con Lacking good documentation
CherryPy's documentation could use some work. It generally feels very slim and is seriously lacking in some parts. For a beginner who is just starting with Python Frameworks, working with CherryPy's documentation would be very hard.