Slide 1

Slide 1 text

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

Slide 2

Slide 2 text

@ticketeaEng

Slide 3

Slide 3 text

Client WSGI Middlewares URL Resolver View Web server HttpRequest HttpResponse Context processors Templates

Slide 4

Slide 4 text

¡Pongamos orden en este caos! Client

Slide 5

Slide 5 text

¡Pongamos orden en este caos! Client Web server

Slide 6

Slide 6 text

¡Pongamos orden en este caos! Client Web server WSGI

Slide 7

Slide 7 text

¡Pongamos orden en este caos! Client Web server WSGI

Slide 8

Slide 8 text

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

Slide 9

Slide 9 text

WSGI (Web Server Gateway interface)* https://github.com/django/django/blob/master/django/core/handlers/wsgi.py

Slide 10

Slide 10 text

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

Slide 11

Slide 11 text

Middlewares https://github.com/django/django/blob/master/django/core/handlers/base.py#L106

Slide 12

Slide 12 text

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

Slide 13

Slide 13 text

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

Slide 14

Slide 14 text

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

Slide 15

Slide 15 text

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

Slide 16

Slide 16 text

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

Slide 17

Slide 17 text

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

Slide 18

Slide 18 text

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

Slide 19

Slide 19 text

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

Slide 20

Slide 20 text

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

Slide 21

Slide 21 text

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

Slide 22

Slide 22 text

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

Slide 23

Slide 23 text

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

Slide 24

Slide 24 text

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

Slide 25

Slide 25 text

Una teoría interesante pero… ¿Todo esto sirve para algo?

Slide 26

Slide 26 text

Un caso de uso Necesitamos redirigir usuarios a otro dominio

Slide 27

Slide 27 text

No content

Slide 28

Slide 28 text

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

Slide 29

Slide 29 text

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!

Slide 30

Slide 30 text

Un caso de uso

Slide 31

Slide 31 text

Un caso de uso

Slide 32

Slide 32 text

GRACIAS! @imanolcg Imanol Cea