Qué se hace en ejemplo‐cgi - PlataformasWeb-P-AA2025/actividad-10-junio-c2-b2-g02 GitHub Wiki

Introducción al uso de CGI con Python

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.

¿Qué hace el script hello.py?

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").

Explicación del código

Encabezado del script

#!/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.

Importación del módulo CGI

import cgi

El módulo cgi permite manejar formularios web y recuperar los datos que el usuario envía al servidor.

Encabezado HTTP

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.

Recepción de parámetros del formulario

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.

Salida de HTML dinámico

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.

Conclusión

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.

Capturas de pantalla

Correcto funcionamiento de hello.py

Bibliografía:

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.

⚠️ **GitHub.com Fallback** ⚠️