You are on page 1of 7

Inicio Libros Tutoriales Eventos Foro Buscar

Libros / Python para principiantes / Captulo 13. Corriendo aplicaciones Python en la web
/ 13.3. Utilizando environ para manejar peticiones del usuario

13.3. Utilizando environ para


manejar peticiones del usuario
El diccionario environ del mdulo os , nos provee de la URI solicitada por el usuario, a
travs de la clave REQUEST_URI . Valindonos de ella, podremos crear una Application
WSGI Controller mucho ms potente, que nos permita hacer switch de la peticin, para
saber a qu mdulo llamar.
open in browser PRO version Are you a developer? Try out the HTML to PDF API pdfcrowd.com
Para ello y a fin de poder manejar imports absolutos evitando inconvenientes, primero
debemos crear un archivo __init__.py en mypythonapp y luego, agregar el path de
nuestra aplicacin en nuestro controller.py , para que Python busque all nuestros
mdulos:

from sys import path


path.append('/home/yo/curso-python/trunk/python-web/')

Ahora, todos nuestros imports los podremos hacer con el namespace absoluto, desde
mypythonapp . Por ejemplo:

from mypythonapp.mi_paquete import mi_modulo

Nuestra app, podra por ejemplo, tener un paquete llamado sitioweb . Dentro de este
paquete, podra tener varios mdulos, correspondientes a cada una de las secciones de
nuestro sitio. Valindonos de la clave REQUEST_URI de environ , podramos hacer un
switch como el que sigue:

from sys import path


path.append('/home/eugenia/borrador/python-web/')

from mypythonapp.sitioweb import contacto, default

open in browser PRO version Are you a developer? Try out the HTML to PDF API pdfcrowd.com
def application(environ, start_response):
peticion = environ['REQUEST_URI']

if peticion.startswith('/contacto'):
output = contacto.formulario()
elif peticion.startswith('/gracias'):
output = contacto.gracias()
else:
output = default.default_page()

start_response('200 OK', [('Content-Type', 'text/html; charset=utf-8'


)])
return output

NOTA
Importante: siempre, tras hacer un cambio a tu aplicacin, debes reiniciar Apache
para que los cambios se vean reflejados de manera correcta: sudo service
apache2 restart

open in browser PRO version Are you a developer? Try out the HTML to PDF API pdfcrowd.com
Al ingresar a http://python-app/contacto, el contenido mostrado ser el retornado por la
funcin formulario() del mdulo contacto del paquete sitioweb .

Si en cambio, ingresramos en http://python-app/gracias, veramos el contenido


retornado por la funcin gracias() del mismo mdulo.

Y si la URI solicitada no fuese ni una ni otra, siempre se mostrar el contenido retornado


por la funcin default_page() del mdulo default del paquete sitioweb .

NOTA
Ten en cuenta que ningn print de tu app ser tenido en cuenta. Todas las
funciones de tu app, tendrn que hacer un return del contenido que desees
mostrar al usuario, para que el Application WSGI Controller, se encargue de
entregarlos a WSGI y ste, de mostrarlos al usuario.

Anterior Siguiente
13.2. Python bajo Apache Captulo 14. Enviando e-mails con formato HTML
desde Python

open in browser PRO version Are you a developer? Try out the HTML to PDF API pdfcrowd.com
Copyright (c) 2011-2013 Eugenia Bahit. La copia y redistribucin de esta pgina se permite bajo los trminos de
la licencia Creative Commons Atribucin NoComercial SinDerivadas 3.0 Unported siempre que se conserve esta
nota de copyright.

INDICE DE CONTENIDOS

1. Preparacin del entorno de desarrollo

2. Estructura y elementos del lenguaje

3. Mdulos, paquetes y namespaces

4. Funciones definidas por el usuario

5. Introduccin a la orientacin a objetos

6. Mtodos principales del objeto String

7. Mtodos principales del objeto list

8. Mtodos principales del objeto dict

9. El objeto File: trabajando con archivos

10. Un paseo por los mdulos de la librera estndar

11. Introduccin a MySQL y el lenguaje SQL

12. Bases de datos en Python con MySQL

Captulo 13. Corriendo aplicaciones Python en la web

open in browser PRO version Are you a developer? Try out the HTML to PDF API pdfcrowd.com
13.1. Introduccin

13.2. Python bajo Apache

13.3. Utilizando environ para manejar peticiones del usuario

14. Enviando e-mails con formato HTML desde Python

3.757
2006-2017 LibrosWeb.es Contacto Novedades Condiciones Privacidad

das online

open in browser PRO version Are you a developer? Try out the HTML to PDF API pdfcrowd.com
open in browser PRO version Are you a developer? Try out the HTML to PDF API pdfcrowd.com

You might also like