Django request-response

A0a96a5403921890df7a9b2c0f0298c1?s=47 Imanol Cea
November 21, 2015

Django request-response

Presentación de la charla dada en la PyCon ES 2015.

Resumen del ciclo de vida de una request/response dentro de Django

A0a96a5403921890df7a9b2c0f0298c1?s=128

Imanol Cea

November 21, 2015
Tweet

Transcript

  1. Django Request-Response Un viaje de ida y vuelta @imanolcg Imanol

    Cea
  2. @ticketeaEng

  3. Client WSGI Middlewares URL Resolver View Web server HttpRequest HttpResponse

    Context processors Templates
  4. ¡Pongamos orden en este caos! Client

  5. ¡Pongamos orden en este caos! Client Web server

  6. ¡Pongamos orden en este caos! Client Web server WSGI

  7. ¡Pongamos orden en este caos! Client Web server WSGI

  8. WSGI (Web Server Gateway interface)* - ¿Qué es? * https://www.python.org/dev/peps/pep-0333/

    - ¿Por qué surge? https://www.python.org/dev/peps/
  9. WSGI (Web Server Gateway interface)* https://github.com/django/django/blob/master/django/core/handlers/wsgi.py

  10. Middlewares - Sistema de plugins para alterar request y/o response

    - Encargados de realizar tareas muy específicas https://www.python.org/dev/peps/pep-0333/#id13 - El orden de los mismos es MUY importante
  11. Middlewares https://github.com/django/django/blob/master/django/core/handlers/base.py#L106

  12. ¡Pongamos orden en este caos! Client Web server WSGI Request

    middleware
  13. Recordando fantasmas del pasado…. https://docs.djangoproject.com/en/1.8/ref/request-response/#django.http.HttpRequest.REQUEST

  14. ¡Pongamos orden en este caos! Client Web server WSGI Request

    middleware
  15. ¡Pongamos orden en este caos! Client Web server WSGI Request

    middleware URL Resolution
  16. ¡Pongamos orden en este caos! Client Web server WSGI Request

    middleware URL Resolution View middleware
  17. ¡Pongamos orden en este caos! Client Web server WSGI Request

    middleware URL Resolution View middleware View
  18. ¡Pongamos orden en este caos! Client Web server WSGI Request

    middleware URL Resolution View middleware View Response middleware
  19. ¡Pongamos orden en este caos! Client Web server WSGI Request

    middleware URL Resolution View middleware View Response middleware Exception middleware
  20. ¡Pongamos orden en este caos! Client Web server WSGI Request

    middleware URL Resolution View middleware View Response middleware Exception middleware WSGI
  21. ¡Pongamos orden en este caos! Client Web server WSGI Request

    middleware URL Resolution View middleware View Response middleware Exception middleware WSGI Web server
  22. ¡Pongamos orden en este caos! Client Web server WSGI Request

    middleware URL Resolution View middleware View Response middleware Exception middleware WSGI Web server Client
  23. ¡Pongamos orden en este caos! Client Web server WSGI Request

    middleware URL Resolution View middleware View Response middleware Exception middleware WSGI Web server Client
  24. ¡Pongamos orden en este caos! Client Web server WSGI Request

    middleware URL Resolution View middleware View Response middleware Exception middleware WSGI Web server Client
  25. Una teoría interesante pero… ¿Todo esto sirve para algo?

  26. Un caso de uso Necesitamos redirigir usuarios a otro dominio

  27. None
  28. Un caso de uso Necesitamos redirigir usuarios a otro dominio

    - Solo peticiones desde la IP oficina
  29. Un caso de uso Necesitamos redirigir usuarios a otro dominio

    - Solo peticiones desde la IP oficina Demos la opción de ir a la nueva página solo al 10% de los usuarios - Solo si el idioma es español o inglés - Solo si entra en la web a través de .com - Además, una vez vaya a la nueva web no hay vuelta atrás!
  30. Un caso de uso

  31. Un caso de uso

  32. GRACIAS! @imanolcg Imanol Cea