Diferencia entre revisiones de «Usuario:Lmorillas/desarrollo web servidor/python cgi»

De WikiEducator
Saltar a: navegación, buscar
Línea 4: Línea 4:
 
{{Objetivo|
 
{{Objetivo|
 
* '''Especificación:''' http://www.ietf.org/rfc/rfc3875.txt
 
* '''Especificación:''' http://www.ietf.org/rfc/rfc3875.txt
* '''Librería python:''' http://docs.python.org/2/library/cgi.html
+
* '''Librería Python:''' http://docs.python.org/2/library/cgi.html
* '''Un tutorial:''' http://www.tutorialspoint.com/python/python_cgi_programming.htm
+
* '''Webservers con Python:''' http://docs.python.org/2/howto/webservers.html#common-gateway-interface
 +
* '''Tutoriales:'''
 +
** http://www.tutorialspoint.com/python/python_cgi_programming.htm
 +
** http://webpython.codepoint.net/cgi_tutorial
 +
* '''CGI con Apache:''' http://httpd.apache.org/docs/2.2/howto/cgi.html
 +
 
 
|Title= Common Gateway Interface
 
|Title= Common Gateway Interface
 
}}
 
}}
Línea 11: Línea 16:
 
{{Actividad|
 
{{Actividad|
 
* http://moodle.cpilosenlaces.com/file.php/266/python/intro_prog_servidor.pdf
 
* http://moodle.cpilosenlaces.com/file.php/266/python/intro_prog_servidor.pdf
}}
+
(Cap. 4 de ''Real Python for the Web'', de Michael Herman)}}
  
 
{{Tip|
 
{{Tip|

Revisión de 18:38 16 oct 2013





Icon activity.jpg

Actividad

(Cap. 4 de Real Python for the Web, de Michael Herman)




Icon present.gif
Tip:
  • Para los ejercicios usaremos CGIHTTPServer
 python -m CGIHTTPServer
  • Los programas cgi estarán en un subdirectorio cgi-bin
  • Esos programas tienen que estar identificados como programas python
 #!/usr/bin/env python
  • Tienen que tener permisos de ejecución
 $ chmos +x <programa_cgi.py>




Icon activity.jpg

Configuración del servidor

#!/usr/bin/env python
 
import BaseHTTPServer
import CGIHTTPServer
import cgitb; cgitb.enable()  ## Para mostrar errores CGI
 
server = BaseHTTPServer.HTTPServer
handler = CGIHTTPServer.CGIHTTPRequestHandler
server_address = ("", 8000)
handler.cgi_directories = [""]  ## En qué directorios puede haber programas CGI
 
httpd = server(server_address, handler)
httpd.serve_forever()