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