mirror of
https://github.com/tornadoweb/tornado.git
synced 2026-09-19 17:34:27 +00:00
Tornado is a Python web framework and asynchronous networking library, originally developed at FriendFeed.
http://www.tornadoweb.org/
- Python 99.5%
- Shell 0.3%
- C 0.1%
|
|
||
|---|---|---|
| .github | ||
| demos | ||
| docs | ||
| maint | ||
| tornado | ||
| .coveragerc | ||
| .flake8 | ||
| .gitattributes | ||
| .gitignore | ||
| .readthedocs.yaml | ||
| codecov.yml | ||
| CONTRIBUTING.md | ||
| LICENSE | ||
| MANIFEST.in | ||
| pyproject.toml | ||
| README.rst | ||
| requirements.in | ||
| requirements.txt | ||
| runtests.sh | ||
| SECURITY.md | ||
| setup.cfg | ||
| setup.py | ||
| tox.ini | ||
.. image:: docs/tornado.png?raw=true
:alt: Tornado Web
:align: center
Tornado Web Server
==================
`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