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.
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>'
5 Respuestas para "Desarrollo web con Python"
Quizás te resulte mas fácil de la siguiente manera:
[PYTHON]
def main():
var_nombre = 'Farruquito'
var_titulo = 'Este es el titulo de la pagina'
salida = """
hola que tal me llamo %(var_nombre)s
""" % vars()
print "Content-type: text/html\n"
print salida
main()
[/PYTHON]
Si quieres poder capturar la informacion que se pase a traves de la url o de un formulario tenés que usar la librería cgi. El codigo seria el siguiente:
[PYTHON]
import cgi
def main():
form = cgi.FieldStorage() # cgi.FieldStorage() actúa como un diccionario.
var_nombre = 'Farruquito'
var_titulo = 'Este es el titulo de la pagina'
if form.has_key('Titulo'): var_titulo = form['Titulo'].value # si existe la llave Titulo captura su valor y le damos a la variable var_titulo ese valor
if form.has_key('Nombre'): var_nombre = form['Nombre'].value # =
salida = """
hola que tal me llamo %(var_nombre)s
""" % vars()
print "Content-type: text/html\n"
print salida
main()
[/PYTHON]
En esta segunda página se podría cambiar el título y el nombre si le pasamos los parámetros por la url, por ejemplo: servidor/pagina.py?Titulo=NuevoTitulo&Nombre=Billy
te pasa lo mismo que a mi jejej, pero pasa que en el mundo linux no existen muchas soluciones practicas, lo unico que te puedo decir es…. NO DEJES PHP, en el mundo web nada se le compara
HOLA, una pregunta: ¿Cómo recibo en python un Get o un Post?. Digamos la página terminal que corre en el cliente web manda un mensaje al servidor llamando a una función python, esta recibe como parámetro el mensaje verdad¿? pero como juega req con todo esto? ¿o hay otras variables? o como proceso el parámetro para obtener los datos que envié?. Muchas gracias desde ya.
Muy bueno tú blog, te felicito, que rico leer tanta información y tan variada.
@Raúl, con el módulo cgi te mola para lo que quieres; si no es muy tarde para esta respuesta.
hola man bueno me gustaria que ages un pequeño tuto de como instalar esos frameworks bueno yo ahora solo estoy usando xampp pero supongo que debe de ser lo mismo
no se si me puedes recomendar una pagina donde pueda revizarla mejor
Comentarios: