Ayuda con formularios CGI

aNgel rEsendiz g. sonajadiabolica en gmail.com
Mar Sep 12 20:13:38 CEST 2006


Que tal.

Una duda:  ¿existe alguna razón por la cuál se deba pasar el parametro
"form" a la función show_form ? Ya que puede funcionar sin él.

Gracias y Saludos.

On 9/10/06, Juan Carlos Rodrigo <jrodrigog en gmail.com> wrote:
> Este es un CGI de ejemplo... Tiene dos paginas, un
> formulario y otra en la que te saluda con el nombre
> que pusiste. El formulario funciona igual para metodos
> GET y POST.
>
> ------8<------8<------8<------8<------8<------
> #!/bin/env python
> import cgi
> # Activar debugging cgi
> import cgitb; cgitb.enable()
>
> def http_header():
>  print 'Content-type: text/html'
>  print
>
> def greet( form ):
>  print """\
> <html><body>
> Hola %s
> </body></html>
> """ % cgi.escape( form[ 'name' ].value )
> # Escapar los datos que vienen del form
> # antes de mostrarlos es conveniente.
>
> def show_form( form ):
>  print """\
> <html><body>
> <form method="POST">
> Dime tu nombre:<br>
> <input type="text" name="name">
> <input type="submit" name="go" value="..">
> </form>
> </body></html>"""
>
> def main():
>  # Crear una cabecera http
>  http_header()
>  # El formulario es un diccionario
>  form = cgi.FieldStorage()
>  # Si existe la variable del form 'go' (Boton)
>  if form.has_key( 'go' ):
>   # El usuario pulso el boton, le saludamos
>   greet( form )
>  else:
>   # No se ha pulsado el boton, mostrar form
>   show_form( form )
>
> if __name__ == "__main__":
>  main()
> ------8<------8<------8<------8<------8<------
>
> Con este programa puedes probar ese cgi, llamas
> a este script server.py y bajo su directorio creas
> un cgi-bin y pones alli el cgi anterior con el
> nombre test.py, asegurate de que se puede
> ejecutar y arranca el server.py
>
> ------8<------8<------8<------8<------8<------
> import BaseHTTPServer, CGIHTTPServer
> httpd = BaseHTTPServer.HTTPServer(
>  ('localhost', 8080),
>  CGIHTTPServer.CGIHTTPRequestHandler
> )
> httpd.serve_forever()
> ------8<------8<------8<------8<------8<------
>
> lo veras en http://localhost:8080/cgi-bin/test.py
>
> Saludos.
>
>
> _______________________________________________
> Python-es mailing list
> Python-es en aditel.org
> http://listas.aditel.org/listinfo/python-es
>
>
>


-- 
aNgel rEsendiz.!




Más información sobre la lista de distribución Python-es