Tornado is a Python web framework and asynchronous networking library, originally developed at FriendFeed.
Go to file
Ben Darnell 8cf55df456 Require modern ssl features (SSLContext, etc)
Now that we've dropped python 3.3 (so create_default_context is
present on all supported versions), we can drop all ssl
backwards-compatibility and require the modern feature set.
2017-10-22 12:37:19 -04:00
demos Merge pull request #2154 from juanpabloaj/removed-unused-import-logging 2017-09-23 12:51:10 -04:00
docs Drop support for python 3.3, 3.5.[01] (#2116) 2017-09-04 15:32:52 -04:00
maint Require modern ssl features (SSLContext, etc) 2017-10-22 12:37:19 -04:00
tornado Require modern ssl features (SSLContext, etc) 2017-10-22 12:37:19 -04:00
.coveragerc Add .coveragerc for test coverage reporting. 2012-01-21 14:10:00 -08:00
.gitignore Add .mypy_cache to gitignore 2016-04-24 12:17:21 -04:00
.travis.yml Drop support for python 3.3, 3.5.[01] (#2116) 2017-09-04 15:32:52 -04:00
LICENSE Add top level LICENSE file 2013-08-22 19:28:35 -04:00
MANIFEST.in setup: Ship LICENSE file in tarball 2017-02-20 14:59:03 -05:00
README.rst Merge pull request #1544 from gitter-badger/gitter-badge 2016-07-12 22:52:05 -04:00
appveyor.yml build: Speed up appveyor tests by not running the full matrix. 2017-05-21 16:09:12 -04:00
codecov.yml Disable intrusive codecov features 2016-05-21 18:51:33 -04:00
runtests.sh Remove some vestigial references to 2to3. 2014-01-19 18:55:53 -05:00
setup.py Require modern ssl features (SSLContext, etc) 2017-10-22 12:37:19 -04:00
tox.ini Drop support for python 3.3, 3.5.[01] (#2116) 2017-09-04 15:32:52 -04:00

README.rst

Tornado Web Server
==================

.. image:: https://badges.gitter.im/Join%20Chat.svg
   :alt: Join the chat at https://gitter.im/tornadoweb/tornado
   :target: https://gitter.im/tornadoweb/tornado?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge

`Tornado <http://www.tornadoweb.org>`_ is a Python web framework and
asynchronous networking library, originally developed at `FriendFeed
<http://friendfeed.com>`_.  By using non-blocking network I/O, Tornado
can scale to tens of thousands of open connections, making it ideal for
`long polling <http://en.wikipedia.org/wiki/Push_technology#Long_Polling>`_,
`WebSockets <http://en.wikipedia.org/wiki/WebSocket>`_, and other
applications that require a long-lived connection to each user.

Hello, world
------------

Here is a simple "Hello, world" example web app for Tornado:

.. code-block:: python

    import tornado.ioloop
    import tornado.web

    class MainHandler(tornado.web.RequestHandler):
        def get(self):
            self.write("Hello, world")

    def make_app():
        return tornado.web.Application([
            (r"/", MainHandler),
        ])

    if __name__ == "__main__":
        app = make_app()
        app.listen(8888)
        tornado.ioloop.IOLoop.current().start()

This example does not use any of Tornado's asynchronous features; for
that see this `simple chat room
<https://github.com/tornadoweb/tornado/tree/stable/demos/chat>`_.

Documentation
-------------

Documentation and links to additional resources are available at
http://www.tornadoweb.org