Tornado: Das ultimative Handbuch zum asynchronen Python-Web-Framework
Was ist Tornado?
Tornado ist ein leistungsstarker asynchroner Webserver und ein Web-Framework für Python, das speziell für die Verarbeitung einer großen Anzahl gleichzeitiger Verbindungen entwickelt wurde. Entwickelt vom Team hinter FriendFeed (später von Facebook übernommen), gilt Tornado als einer der Pioniere der asynchronen Programmierung in Python.
Die Kernphilosophie von Tornado basiert auf nicht-blockierender Ein-/Ausgabe und einer ereignisgesteuerten Architektur. Dadurch kann ein einzelner Prozess tausende Verbindungen gleichzeitig bedienen – ideal für hochskalierbare Webanwendungen, Chats, Echtzeitsysteme und API-Dienste.
Wichtige Funktionen und Vorteile von Tornado
Asynchrone Architektur
Tornado nutzt ein ereignisorientiertes Programmiermodell, das viele Anfragen in einem einzigen Thread verarbeitet. Das reduziert den Overhead durch Kontextwechsel und Speicherverwaltung erheblich.
Integrierter HTTP-Server
Anders als viele andere Frameworks enthält Tornado einen eigenen HTTP-Server. Sie benötigen keine zusätzlichen Komponenten wie WSGI, um Ihre Anwendung bereitzustellen.
WebSocket-Unterstützung
Tornado bietet native Unterstützung für WebSocket-Verbindungen – die perfekte Grundlage für interaktive Echtzeitanwendungen.
Kompatibilität mit asyncio
Seit Version 5.0 ist Tornado vollständig mit asyncio kompatibel. Sie können es problemlos mit anderen asynchronen Python-Bibliotheken kombinieren.
Flexibles Routing-System
Tornado bietet ein mächtiges URL-Routing mit Unterstützung für reguläre Ausdrücke und Parameter.
Eigene Template-Engine
Das Framework enthält eine eigene Vorlagen-Engine zur Erstellung dynamischer HTML-Seiten.
Installation und Umgebungseinrichtung
Tornado installieren
pip install tornado
Für erweiterte Funktionen installieren Sie zusätzliche Pakete:
# Für MongoDB
pip install motor
# Für PostgreSQL
pip install asyncpg
# Für Redis
pip install aioredis
Projektstruktur
Empfohlene Ordnerstruktur für ein Tornado-Projekt:
project/
├── app.py # Hauptdatei der Anwendung
├── handlers/ # Request-Handler
│ ├── __init__.py
│ ├── base.py
│ ├── auth.py
│ └── api.py
├── models/ # Datenmodelle
│ ├── __init__.py
│ └── user.py
├── templates/ # HTML-Vorlagen
│ ├── base.html
│ ├── index.html
│ └── error.html
├── static/ # Statische Dateien
│ ├── css/
│ ├── js/
│ └── images/
├── config/ # Konfigurationsdateien
│ ├── __init__.py
│ └── settings.py
└── requirements.txt # Projektabhängigkeiten
Erste Schritte: Ihre erste Tornado-App
Einfaches Beispiel
import tornado.ioloop
import tornado.web
class MainHandler(tornado.web.RequestHandler):
def get(self):
self.write("Willkommen bei Tornado!")
class AboutHandler(tornado.web.RequestHandler):
def get(self):
self.write("Über uns")
def make_app():
return tornado.web.Application([
(r"/", MainHandler),
(r"/about", AboutHandler),
])
if __name__ == "__main__":
app = make_app()
app.listen(8888)
print("Server läuft unter http://localhost:8888")
tornado.ioloop.IOLoop.current().start()
App mit Konfiguration
import tornado.web
import tornado.ioloop
import os
class Application(tornado.web.Application):
def __init__(self):
handlers Auch in der Bibliothek
JSON-Verarbeitung in Java: Die Bibliotheken Jackson und Gson für die Datenarbeit
Objektserialisierung in Go (Golang): Ein vollständiger Leitfaden
Vision für Swift: Komplettleitfaden mit Beispielen