Django - da requisição à resposta

PythOnRio - Maio - 2018

quem?

Luciano Ratamero

Python/JavaScript

lucianoratamero.github.io

@lucianoratamero

código de exemplo

django_request_flow

o que é o django

  • framework web
  • python 3
  • tudo que você precisa

(aqui você já pode scrollar pro lado direito ;D)

sobre o que iremos falar

  • request
  • response
  • middlewares
  • context processors
  • wsgi

o que acontece quando fazemos uma requisição?

¯\_(ツ)_/¯

vamos pelo mais fácil

views

def see_quacks(request):
    return render(request, 'see_quacks.html')

se temos um objeto de request...

WSGI

  • Web Server Gateway Interface
  • padrão para interfaces web em python - PEP 333

por que modificar?

  • roteamento/resposta precoce
  • antes do django fazer qualquer coisa

modificando o handler WSGI

  • settings.WSGI_APPLICATION
  • default: '.wsgi.application'

e depois? middlewares!

  • úteis para (pre/pos)processamento
  • manipula requests e responses em camadas
  • exemplo: request.user, do AuthenticationMiddleware

o que temos, por enquanto

  • requisição >
  • WSGI >
  • middleware >
  • view >
  • middleware >
  • ??? >
  • resposta

context processors

  • ao fim de uma requisição
  • adição de variáveis ao contexto
  • acesso dentro do template
  • exemplo: messages

concluindo

  • requisição >
  • WSGI >
  • middleware >
  • view >
  • middleware >
  • context processors >
  • resposta

perguntas?

luciano@ratamero.com

cerveja/café