Tornado: Servidor web assíncrono Python para alta performance

Treinador Online de Python para Iniciantes

Aprenda Python facilmente sem sobrecarga teórica. Resolva tarefas práticas com verificação automática e escreva código diretamente no navegador.

Start Course

Tornado: Guia completo do framework web assíncrono Python

O que é Tornado

Tornado é um poderoso servidor web e framework web assíncrono para Python, projetado especificamente para lidar com um grande número de conexões simultâneas. Criado pela equipe do FriendFeed (posteriormente adquirida pelo Facebook), o Tornado se tornou um dos pioneiros no campo da programação assíncrona em Python.

A filosofia principal do Tornado é usar entrada/saída não bloqueante e uma arquitetura baseada em eventos. Isso permite que um único processo atenda milhares de conexões simultaneamente, tornando-o a escolha ideal para criar aplicações web de alto desempenho, chats, sistemas em tempo real e serviços de API.

Principais recursos e vantagens do Tornado

Arquitetura assíncrona

O Tornado usa um modelo de programação orientado a eventos, que permite processar várias requisições em uma única thread. Isso reduz significativamente a sobrecarga de troca de contexto e gerenciamento de memória.

Servidor HTTP integrado

Ao contrário de muitos outros frameworks, o Tornado inclui seu próprio servidor HTTP, eliminando a necessidade de componentes adicionais como WSGI para implantar aplicações.

Suporte a WebSocket

O Tornado oferece suporte nativo a conexões WebSocket, tornando-o uma excelente escolha para criar aplicações interativas em tempo real.

Compatibilidade com asyncio

A partir da versão 5.0, o Tornado é totalmente compatível com asyncio, permitindo seu uso junto com outras bibliotecas assíncronas Python.

Sistema de roteamento flexível

O Tornado fornece um poderoso sistema de roteamento de URL com suporte a expressões regulares e parâmetros.

Template engine integrado

O framework inclui seu próprio template engine para gerar páginas HTML com conteúdo dinâmico.

Instalação e configuração do ambiente

Instalando o Tornado

pip install tornado

Para trabalhar com recursos adicionais, você pode instalar pacotes extras:

# Para trabalhar com MongoDB
pip install motor

# Para trabalhar com PostgreSQL
pip install asyncpg

# Para trabalhar com Redis
pip install aioredis

Estrutura do projeto

Estrutura de projeto recomendada para Tornado:

project/
├── app.py                 # Arquivo principal da aplicação
├── handlers/              # Manipuladores de requisições
│   ├── __init__.py
│   ├── base.py
│   ├── auth.py
│   └── api.py
├── models/                # Modelos de dados
│   ├── __init__.py
│   └── user.py
├── templates/             # Templates HTML
│   ├── base.html
│   ├── index.html
│   └── error.html
├── static/                # Arquivos estáticos
│   ├── css/
│   ├── js/
│   └── images/
├── config/                # Arquivos de configuração
│   ├── __init__.py
│   └── settings.py
└── requirements.txt       # Dependências do projeto

Criando sua primeira aplicação

Exemplo básico

import tornado.ioloop
import tornado.web

class MainHandler(tornado.web.RequestHandler):
    def get(self):
        self.write("Bem-vindo ao Tornado!")

class AboutHandler(tornado.web.RequestHandler):
    def get(self):
        self.write("Página sobre nós")

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

if __name__ == "__main__":
    app = make_app()
    app.listen(8888)
    print("Servidor rodando em http://localhost:8888")
    tornado.ioloop.IOLoop.current().start()

Configurando a aplicação com parâmetros

import tornado.web
import tornado.ioloop
import os

class Application(tornado.web.Application):
    def __init__(self):
        handlers                    

Recommendations