Unos posts atrás instalé Python sobre apache. Ahora, mi objetivo fue desarrollar algo más que el Hola Mundo. Para ello me puse a googlear y buscar un poco acerca del tema, y más que nada he adquirido dudas.

No he visto ejemplo alguno donde se embeba código Python dentro de un HTML, como se hace con con PHP por ejemplo.

He visto un montón de nombre de frameworks para el desarrollo web con Python (TurboGears, Zope, Django, Pylons). Incluso he llegado a leer en algún comentario "Python es el único lenguaje de programación con más frameworks de desarrollo web que palabras clave"

Evidentemente, tengo mucho que leer y mucho camino por recorrer, pero como consuelo por el momento me limité a escribir un html (a pico y pala) copypasteando un poco de código.

#html.py

def index(req):
    req.content_type = "text/html"
    req.write( head ('Hola'))
    req.write( titulo( '2','Pagina generada con Python'))
    req.write( parrafo( 'My Blog: ' +
                        link ('luauf.com','LuAuF') ) )
    req.write( hr())
    req.write(tabla( [ ['Celda11', 'Celda12'],
                       ['Celda21', 'Celda22'] ] ) )
    req.write( hr())
    req.write(footer())

def head ( title='' ):
    "Inicia el documento HTML."
    return '<html> \
                <head> \
                    <title>'
+ title + '</title> \
                </head> \
            <body>\n'

def titulo( level='1'string='' ):
    "Regresa string con titulo HTML, default es H1."
    return '<h'+ level + '>'+ string + '</h'+ level + '>'

def link( url, text):
    "Liga o hipervinculo a url con texto."
    return '<a href="' + url + '">' + text + '</a>'

def parrafo( text ):
    "Genera un parrafo con texto."
    return '<p>' + text + '</p>\n'

def br():
    "Genera un salto de linea."
    return '<br>\n'

def hr():
    "Genera un salto de linea."
    return '<hr>\n'

def tabla( arreglo ):
    """Muestra arreglo en una tabla HTML.
    Las celdas pueden ser cualquier tipo,
    se convierten a cadena siempre."
""

    temp =  '<table border="1">\n'

    for renglon in arreglo:
        temp = temp + '<tr>'
        for celda in renglon:
            temp = temp + '<td>' + str(celda) + '</td>\n'
        temp = temp + '</tr>\n'
    return temp + '</table>\n'

def footer():
    "Fin del documento HTML."
    return '</body></html>'