Tornado – asynchroner Webserver für Python

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten

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                    

Empfehlungen