Tornado is a Python web framework and asynchronous networking library, originally developed at FriendFeed.
Go to file
Ben Darnell 9844c6751e docs: Remove empty testoutput blocks
These were once needed (I think) to get the tests to run at all, even
though they triggered warnings from sphinx. Now it works without them.
2024-06-11 22:21:20 -04:00
.github/workflows Add python 3.13 betas to test configs 2024-06-07 21:24:12 -04:00
demos *: Update black 2024-06-04 14:19:52 -04:00
docs docs: Remove empty testoutput blocks 2024-06-11 22:21:20 -04:00
maint twisted: Delete TwistedResolver class 2024-06-11 12:16:55 -04:00
tornado docs: Remove empty testoutput blocks 2024-06-11 22:21:20 -04:00
.coveragerc Add .coveragerc for test coverage reporting. 2012-01-21 14:10:00 -08:00
.flake8 *: Update black 2024-06-04 14:19:52 -04:00
.gitattributes test: Add gitattributes for test data files 2020-01-18 14:18:50 -05:00
.gitignore Add .mypy_cache to gitignore 2016-04-24 12:17:21 -04:00
.readthedocs.yaml Consolidate maint and docs requirements files 2023-01-20 19:52:40 +00:00
LICENSE Add top level LICENSE file 2013-08-22 19:28:35 -04:00
MANIFEST.in setup: Include tox.ini in sdist 2023-05-03 12:46:28 -04:00
README.rst all: Support lazy imports of submodules 2022-11-27 15:41:27 -05:00
SECURITY.md Create security policy document 2023-01-05 11:40:24 -05:00
codecov.yml Disable intrusive codecov features 2016-05-21 18:51:33 -04:00
pyproject.toml ci: Update build workflow 2023-04-09 21:31:38 +00:00
requirements.in docs: Update sphinx (and the rest of the deps) 2024-06-11 21:39:34 -04:00
requirements.txt docs: Update sphinx (and the rest of the deps) 2024-06-11 21:39:34 -04:00
runtests.sh Remove some vestigial references to 2to3. 2014-01-19 18:55:53 -05:00
setup.cfg setup: Drop support for python 3.7 2022-11-19 17:22:36 -05:00
setup.py Add python 3.13 betas to test configs 2024-06-07 21:24:12 -04:00
tox.ini docs: Remove empty testoutput blocks 2024-06-11 22:21:20 -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 asyncio
    import tornado

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

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

    async def main():
        app = make_app()
        app.listen(8888)
        await asyncio.Event().wait()

    if __name__ == "__main__":
        asyncio.run(main())

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
https://www.tornadoweb.org