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 Também na biblioteca
Validator para Go: guia completo com exemplos práticos
Geração de QR Codes em PHP: biblioteca phpqrcode e guia completo
Configuração de aplicações em C++: bibliotecas e ferramentas para configuração flexível
Cheerio para JavaScript (Node.js): guia completo com exemplos
Guia completo de Symfony/Cache para PHP com exemplos práticos