lunes, 17 de agosto de 2015

Programación web con python

Los sitios web dinámicos no se basan en los archivos del sistema de archivos , sino más bien en los programas que se ejecutan por el servidor web cuando llega una petición , el cual genera el contenido que se devuelve al usuario. Estos programas pueden hacer todo tipo de cosas útiles , como mostrar los mensajes de un tablón de anuncios , mostrar su correo electrónico , configurar el software , o simplemente mostrar la hora actual . Pueden ser escritos en cualquier lenguaje de programación compatible con el servidor . Como la mayoría de los servidores soportan Python , es fácil de usar este lenguaje para crear sitios web dinámicos .
La mayoría de los servidores HTTP están escritos en C o C ++ , así que no pueden ejecutar código Python directamente - se necesita un puente entre el servidor y el programa. Estos puentes , o más bien interfaces, definen cómo los programas interactúan con el servidor. Ha habido numerosos intentos de crear la mejor interfaz posible.

Common Gateway Interface

Esta interfaz , más comúnmente conocida como " CGI " , es la más antigua , y es compatible con casi todos los servidores web. Los programas que utilizan CGI para comunicarse con su servidor web necesitan ser iniciados por el servidor por cada solicitud . Por lo tanto, cada solicitud inicia un nuevo intérprete de Python - que toma un poco de tiempo para poner en marcha - con lo que toda la interfaz sólo se puede utilizar para situaciones de baja carga .

La ventaja de CGI es que es simple - escribir un programa Python que utiliza CGI es una cuestión de unos tres líneas de código. Esta simplicidad tiene un precio : tiene pocoas características para ayudar a los desarrolladores.

Escribir programas CGI , mientras que todavía es posible, ya no se recomienda. Con WSGI , un tema que se trata más adelante en este documento , es posible escribir programas que emulan CGI , por lo que se puede ejecutar como CGI si hay mejor opción está disponible .


WSGI
El servidor Web Gateway Interface, o WSGI para abreviar, se define en el PEP 333 y es actualmente la mejor manera de hacer programación web con Python.

El gran beneficio de WSGI es la unificación de la interfaz de programación de aplicaciones. Cuando un programa es compatible con WSGI, el programa se puede implementar a través de cualquier interfaz de servidor web. No es necesario preocuparse por si el usuario de la aplicación utiliza mod_python o FastCGI o mod_wsgi - con WSGI la aplicación funcionará en cualquier interfaz. La biblioteca estándar de Python contiene su propio servidor WSGI, wsgiref, que es un pequeño servidor web que puede ser utilizado.

La aplicación WSGI esta compuesta de objetos Python (funciones o clases con un método __call__ que se pasan dos argumentos : un entorno WSGI como primer argumento y una función que inicia la respuesta .



Extended Hello World

Aquí hay un ejemplo sencillo, de una aplicación WSGI que dice Hello World ! donde World se puede especificar mediante el parámetro url

Como se puede ver la función start_response toma dos argumentos . Una cadena de estado y una lista de tuplas que representan las cabeceras de respuesta . Lo que no se puede ver porque no se utiliza aquí y en ninguna otra parte es que la función start_response devuelve algo. Devuelve una función de escritura que escribe directamente en el flujo de salida del servidor web .

¿Pero cómo iniciar esa aplicación ahora? Un servidor web no sabe cómo manejar eso y tampoco lo hace python porque nada llama a esa función. Para eso usaremos el servidor independiente WSGI wsgiref incluido con python2.5 y superior.

Solo se debe agregar lo siguiente al archivo.
Al momento de iniciar el archivo debería verse un Hello John ! en http : // localhost : 8080 / subject = John

No hay comentarios:

Publicar un comentario