{}const=>[]async()letfn</>var
PythonDesarrollo

Informes HTML desde Python: simples y bonitos

Aprende a guardar datos de scripts en HTML para informes, gráficos y automatización.

К

Kodik

Autor

3 min de lectura

Si tu script de Python procesa datos, registra errores o cuenta métricas, surge una pregunta lógica: ¿Y cómo se guarda el resultado?
El formato ideal es HTML. Es bonito, flexible y se abre en cualquier navegador. Y también es fácil de generar sobre la marcha.

En este artículo, te mostraremos cómo recopilar rápidamente informes HTML en Python. Sin marcos ni magia innecesaria, solo técnicas prácticas 💡

🧰 ¿Cuándo se necesita un informe HTML?

  • Después de procesar los datos CSV/Excel

  • Para mostrar gráficos y tablas

  • Al recopilar métricas (por ejemplo, en tareas cron)

  • Para registros de errores procesados correctamente

  • Para almacenar informes de proyectos

📊 Ventajas de HTML:

  • Fácil de visualizar

  • Compatible con estilos y gráficos

  • Se abre en cualquier dispositivo

🔥 100.000+ estudiantes ya están con nosotros

¿Cansado de leer teoría?
¡Hora de programar!

Kodik — una app donde aprendes a programar con práctica. Mentor IA, lecciones interactivas, proyectos reales.

🤖 IA 24/7
🎓 Certificados
💰 Gratis
🚀 Empezar
Se unieron hoy

🛠 Métodos de generación de HTML

Método

Adecuado para

🔹 Ensamblaje manual de la línea

Casos simples

🔹 Plantillas (Jinja2)

Plantillas flexibles

🔹 Pandas .to_html()

Tablas

🔹 Bibliotecas (WeasyPrint, yattag)

Diseño avanzado

🧪 Ejemplo 1: HTML simple manual

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)

🧪 Ejemplo 2: Pandas .to_html() para tablas

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)

🧪 Ejemplo 3: Jinja2 — plantillas con datos

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)

Plantilla 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>

📦 ¿Cómo añadir gráficos?

Si usas matplotlib o plotly, puedes guardar el gráfico como una imagen e insertarlo en el informe:

plt.savefig("chart.png")

html = """
<img src="chart.png" alt="График">
"""

💡 Dónde es útil un informe HTML

  • 📊 Informes internos del equipo

  • 🛠 Monitoreo de DevOps (a través de cron)

  • 💼 Informes automáticos a los clientes

  • 📁 Archivar resultados de scripts

🤖 ¿Puedo tener un PDF?

¡Sí! Usa WeasyPrint o pdfkit:

pip install weasyprint
from weasyprint import HTML

HTML("report.html").write_pdf("report.pdf")

En el anexo Kodik encontrarás cursos de Python, HTML y otros.
Crea plantillas, visualiza datos y hazlo todo de forma atractiva, incluso si acabas de empezar.

Únete también a nuestro comunidades de Telegram 📬

💬 ¡Escríbenos si quieres ver un artículo sobre generación de PDF, informes interactivos o correos electrónicos automáticos con informes HTML!

🎯Deja de postergar

¿Te gustó el artículo?
¡Hora de practicar!

En Kodik no solo lees — escribes código de inmediato. Teoría + práctica = habilidades reales.

Práctica instantánea
🧠IA explica código
🏆Certificado

Sin registro • Sin tarjeta