Qué se hace en ejemplo‐cgi - PlataformasWeb-P-AA2025/actividad-10-junio-c2-b2-g02 GitHub Wiki
Una de las formas más simples y directas de construir una aplicación web desde cero en Python es mediante el uso del estándar Common Gateway Interface (CGI). Esta técnica, muy popular hacia finales de los años noventa, permite que scripts en Python se comuniquen con servidores web para generar contenido dinámico.
Aunque hoy en día existen frameworks más modernos como Django o Flask, CGI sigue siendo útil para comprender los fundamentos del desarrollo web. Su enfoque sencillo lo hace ideal para fines educativos, ya que permite visualizar claramente el flujo de información entre el navegador, el servidor y el script.
Sin embargo, para proyectos más complejos o de gran escala, el uso de CGI puede traer limitaciones, como duplicación de código, falta de modularidad y menor productividad en el desarrollo.
Este script es un ejemplo básico de una aplicación web usando CGI en Python. Su objetivo principal es saludar al usuario por su nombre si lo proporciona mediante un formulario. En caso contrario, utiliza un saludo genérico ("Invitado").
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
Este encabezado asegura que el script se ejecute con Python 3 y que pueda manejar caracteres especiales gracias a la codificación UTF-8.
import cgi
El módulo cgi
permite manejar formularios web y recuperar los datos que el usuario envía al servidor.
print("Content-Type: text/html; charset=UTF-8")
print()
Estos print()
son necesarios para que el navegador interprete correctamente la salida como HTML. El salto de línea es obligatorio para separar los encabezados HTTP del contenido HTML.
form = cgi.FieldStorage()
name = form.getvalue('name', 'Invitado')
Aquí, el script recupera el valor del campo name
enviado a través del formulario. Si no se envía ningún valor, se usará la palabra "Invitado" como predeterminado.
print(f"""
<html>
<head><title>Ejemplo CGI</title></head>
<body>
<h1>¡Hola, {name}!</h1>
<p>Este es un ejemplo básico de un script CGI en Python.</p>
<form method="GET" action="hello.py">
<label for="name">Escribe tu nombre: </label>
<input type="text" id="name" name="name">
<input type="submit" value="Enviar">
</form>
</body>
</html>
""")
Este bloque imprime una página HTML que saluda al usuario. Además, incluye un formulario con un campo de texto donde se puede escribir el nombre. Al enviarlo, se recarga la misma página con el saludo personalizado.
El archivo hello.py
es un ejemplo clásico de cómo usar CGI para generar contenido web dinámico. Aunque este método no es el más eficiente para aplicaciones modernas, es muy útil para aprender cómo funciona la interacción entre formularios HTML y scripts en el servidor.
Este script en particular muestra una página que da la bienvenida a un usuario anónimo o personalizado, dependiendo del parámetro recibido desde el formulario.
Holovaty, A., & Kaplan-Moss, J. (2009). Django, la guía definitiva (S. García M., Comp.; versión 1.8.0, act. 13 de enero de 2015) [Traducción y adaptación libre de la comunidad Django en español]. https://github.com/saulgm/djangobook.com
Nota: Este libro es una traducción y adaptación libre de The Django Book, un proyecto originalmente mantenido por Adrian Holovaty y Jacob Kaplan-Moss. La comunidad de Django en español, junto con Saul García M., han contribuido en su actualización y publicación en línea.