Tornado is a Python web framework and asynchronous networking library, originally developed at FriendFeed.
Go to file
Ben Darnell aa59da6e41 setup: Drop support for python 3.7
The main reason to drop this version before it reaches its EOL is so
that we can begin to use unittest.IsolatedAsyncioTestCase to replace
deprecated portions of the tornado.testing module.

A secondary reason is that Python 3.8 introduced support for the
samesite cookie attribute, which allows us to deprecate the
xsrf_token mechanism.
2022-11-19 17:22:36 -05:00
.github/workflows setup: Drop support for python 3.7 2022-11-19 17:22:36 -05:00
demos Fix URL plural 2022-08-24 19:03:30 +04:30
docs setup: Drop support for python 3.7 2022-11-19 17:22:36 -05:00
maint upgrade mypy to 0.941 (#3123) 2022-03-18 16:17:50 -04:00
tornado setup: Add Python 3.11 final and 3.12 alpha to CI 2022-11-19 17:03:38 -05:00
.coveragerc
.flake8 *: Adopt black as code formatter 2018-10-06 23:03:26 -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
LICENSE Add top level LICENSE file 2013-08-22 19:28:35 -04:00
MANIFEST.in setup: Blacken the file 2018-10-06 23:13:06 -04:00
README.rst avoid deprecated IOLoop.current() call without running loop 2022-01-19 11:22:23 +00:00
codecov.yml Disable intrusive codecov features 2016-05-21 18:51:33 -04:00
pyproject.toml setup: Drop support for python 3.7 2022-11-19 17:22:36 -05: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 setup: Drop support for python 3.7 2022-11-19 17:22:36 -05:00
tox.ini setup: Drop support for python 3.7 2022-11-19 17:22:36 -05: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.web

    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