Flujo de Web2py

De WikiEducator
Saltar a: navegación, buscar



Icon preknowledge.gif

Flujo de una petición a web2py

  • LLega una petición HTTP al servidor web. El servidor procesa cada servidor en su propio hilo en paralelo
  • Se procesa la cabecera HTTP y se pasa al "dispatcher"
  • El "dispatcher" decide qué aplicación tiene que manejar la petición y analiza el PATH_INFO de la URL en la llamada a una función. Cada URL corresponde a una llamada a una función.
  • Las peticiones de fichero de la carpeta static se maenjan directamente. Los ficheros grandes se envía directamente por streaming al cliente.
  • El resto de peticiones se mapean a una acción (función en un fichero de controlador) en la aplicación solicitada.
  • Antes de llamar a la función:
    • Si el encabezado de la petición tiene una cookie de sesión para la app, se recupera el objeto sesión,
    • Si no, se crea un id de sesión.
    • Se crea un entorno de ejecución para la petición. Los modelos se ejecutarán en este entorno.
  • Finalmente la acción del controlador se ejecuta en este entorno.
  • Si la acción devuelve una cadena, ésta se devuelve al cliente (los HTML helpsers de web2py se serializan y devuelven al cliente también)
  • Si la acción devuelve un objeto iterable, se recorre y se envían los datos al cliente
  • Si devuelve un diccionario, trata de localizar la vista que formatea el diccionario. La vista tiene que tener el mismo nombre que la acción y la misma extensión que la página solicitada (por defecto .html) Si no, web2py usa unan vista genérica.




http://www.latinuxpress.com/books/drafts/web2py/_images/diagram1.png