This is an example of using the Flask web framework
along with long-polling (aka Comet, aka reverse AJAX)
techniques to update client state quasi-asynchronously without the benefit of
direct WebSockets support. The
server-side code runs in Python; the front-end Web page client runs in the
browser (in JavaScript).

This is a "poor man's" form of interactivity. It's suitable if

refreshes are occasional,

the delays between updates many seconds long,

and updates are unidirectional server -> client
(though bidirectionality can be kludged).

I've successfully used the technique in production apps, but it will become
more-or-less obsolete as soon as quality support for WebSockets becomes simple
and reliable.

As of Summer 2013, WebSockets with Python and Flask became reliable enough.
flask-ws-example
is an updated example that uses WebSockets and Flask.

Even as of mid-2017, Python's multi-threading support remains piecemeal.
Projects like Jupyter show that WebSockets is
fully feasible for sophisticated project teams. It remains slightly outside
the grasp of a single, simple library and set of support modules that works
across both Python 2.7 and Python 3.