Wenn Ihr Python-Skript Daten verarbeitet, Fehler protokolliert oder Metriken zählt, stellt sich eine logische Frage: und wie bequem ist es, das Ergebnis zu speichern?
Das ideale Format ist HTML. Es ist schön, flexibel und öffnet sich in jedem Browser. Und außerdem ist es einfach, sie im Handumdrehen zu erstellen.
In diesem Artikel zeigen wir Ihnen, wie Sie schnell HTML-Berichte in Python erstellen können. Ohne Frameworks und unnötige Magie – nur praktische Techniken 💡

🧰 Wann braucht man einen HTML-Bericht?
Nach der Verarbeitung von CSV/Excel-Daten
Zum Anzeigen von Diagrammen und Tabellen
Beim Sammeln von Metriken (z. B. in Cron-Jobs)
Für schön verarbeitete Fehlerprotokolle
Zur Speicherung von Projektberichten
📊 Vorteile von HTML:
Bequeme Visualisierung
Unterstützt Stile und Grafiken
Öffnet sich auf jedem Gerät
🛠 Methoden zur HTML-Generierung
Methode | Geeignet für |
|---|---|
🔹 Manuelle Zeilenmontage | Einfache Fälle |
🔹 Vorlagenmaschinen (Jinja2) | Flexible Vorlagen |
🔹 Pandas | Tabellen |
🔹 Bibliotheken (WeasyPrint, yattag) | Erweitertes Layout |
🧪 Beispiel 1: Einfaches HTML manuell
html = """
<!DOCTYPE html>
<html>
<head><title>Report</title></head>
<Body>
<h1> Sample report </ h1>
<p>Total users: 25</p>
</body>
</html>
"""
with open("report.html", "w", encoding="utf-8") as f:
f.write(html)
🧪 Beispiel 2: Pandas .to_html() für Tabellen
import pandas as pd
df = pd.DataFrame({
"Name": ["Code", "Alice", "John"],
"Points": [85, 90, 78]
})
html_table = df.to_html(index=False)
html = f"""
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<style>
table {{ border-collapse: collapse; width: 50%; margin: 20px auto; }}
th, td {{ border: 1px solid #ccc; padding: 8px; text-align: center; }}
th {{ background-color: #f2f2f2; }}
</style>
</head>
<body>
<h2 style="text-align:center;"> Score table </h2>
{html_table}
</body>
</html>
"""
with open("report.html", "w", encoding="utf-8") as f:
f.write(html)
🧪 Beispiel 3: Jinja2 – Vorlagen mit Daten
from jinja2 import Environment, FileSystemLoader
data = {"users": [{"name": "Code", "score": 88}, {"name": "Lena", "score": 95}]}
env = Environment(loader=FileSystemLoader("templates"))
template = env.get_template("report.html")
html = template.render(users=data["users"])
with open("report.html", "w", encoding="utf-8") as f:
f.write(html)
Vorlage templates/report.html:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Отчёт</title>
</head>
<body>
<h1>Баллы пользователей</h1>
<ul>
{% for user in users %}
<li>{{ user.name }} — {{ user.score }}</li>
{% endfor %}
</ul>
</body>
</html>
📦 Wie füge ich Grafiken hinzu?
Wenn du matplotlib oder plotly verwendest, kannst du das Diagramm als Bild speichern und in den Bericht einfügen:
plt.savefig("chart.png")
html = """
<img src="chart.png" alt="График">
"""
💡 Wo ein HTML-Bericht nützlich ist
📊 Interne Teamberichte
🛠 DevOps-Monitoring (über Cron)
💼 Automatische Berichte an Kunden
📁 Archivierung von Skriptergebnissen
🤖 Kann ich ein PDF bekommen?
Ja! Verwenden Sie WeasyPrint oder pdfkit:
pip install weasyprintfrom weasyprint import HTML
HTML("report.html").write_pdf("report.pdf")
Im Anhang Kodik du findest Kurse in Python, HTML und anderen.
Erstelle Vorlagen, visualisiere Daten und mache alles schön — auch wenn du gerade erst anfängst.
Treten Sie auch unserem bei Telegram-Communitys 📬
💬 Schreiben Sie uns, wenn Sie einen Artikel über die Erstellung von PDFs, interaktiven Berichten oder automatischen E-Mail-Newslettern mit HTML-Berichten sehen möchten!
