Tornado is a Python web framework and
asynchronous networking library, originally developed at FriendFeed. By using non-blocking network I/O, Tornado
can scale to tens of thousands of open connections, making it ideal for
long polling,
WebSockets, and other
applications that require a long-lived connection to each user.

Tornado can be roughly divided into four major components:

A web framework (including RequestHandler which is subclassed to
create web applications, and various supporting classes).

An asynchronous networking library including the classes IOLoop
and IOStream, which serve as the building blocks for the HTTP
components and can also be used to implement other protocols.

A coroutine library (tornado.gen) which allows asynchronous
code to be written in a more straightforward way than chaining
callbacks.

The Tornado web framework and HTTP server together offer a full-stack
alternative to WSGI.
While it is possible to use the Tornado web framework in a WSGI
container (WSGIAdapter), or use the Tornado HTTP server as a
container for other WSGI frameworks (WSGIContainer), each of these
combinations has limitations and to take full advantage of Tornado you
will need to use the Tornado’s web framework and HTTP server together.