Django para infográficos
Do que precisávamos Precisávamos de um back-end
Que pudesee gerar arquivos XML ou JSON
Que pudessem ser editados em tempo-real (ou quase isso)
Com uma interface jornalista-friendly
E que pudesse gerar diferentes formatos a partir dos dados que foram colocados lá
Em resumo... Um CRUD bem feito
E um BD que cospe uns JSONS e, se não tiver outro jeito, um XML
CRUD bem-feito
Compatível com jornalistas
Gerando JSON [ { "campeao": 227, "vice": 12, "vice_nome": "Argentina", "ano": 1930, "campeao_nome": "Uruguai", "terceiro_nome": "Estados Unidos", "quarto_nome": "Iugosl\u00e1via", "anfitriao": 227, "anfitriao_nome": "Uruguai", "quarto": 240, "campanhas": [ { "partidas_disputadas": 5, "saldo_de_gols": 8, "disputa_de_penaltis": 0, "gols_feitos": 16, "numero_de_pontos_ganhos": 8, "campanha": 196, "selecao_nome": "Argentina", "cartoes_vermelhos": 0, "selecao": 12, "quartas_de_final": 0, "semifinal": 1, "cartoes_amarelos": 0, "gols_sofridos": 8, "derrotas_nos_penaltis": 0, "numero_de_empates": 0, "numero_de_vitorias": 4, "final": 1, "vitorias_nos_penaltis": 0, "numero_de_derrotas": 1 }, { "partidas_disputadas": 2, "saldo_de_gols": -4, "disputa_de_penaltis": 0, "gols_feitos": 0, "numero_de_pontos_ganhos": 0, "campanha": 205, "selecao_nome": "B\u00e9lgica", "cartoes_vermelhos": 0, "selecao": 21, "quartas_de_final": 0, "semifinal": 0, "cartoes_amarelos": 0, "gols_sofridos": 4, "derrotas_nos_penaltis": 0, "numero_de_empates": 0, "numero_de_vitorias": 0, "final": 0, "vitorias_nos_penaltis": 0, "numero_de_derrotas": 2 }, { "partidas_disputadas": 2, "saldo_de_gols": -8, "disputa_de_penaltis": 0, "gols_feitos": 0, "numero_de_pontos_ganhos": 0, "campanha": 206, "selecao_nome": "Bol\u00edvia", "cartoes_vermelhos": 0, "selecao": 29, "quartas_de_final": 0, "semifinal": 0, "cartoes_amarelos": 0, "gols_sofridos": 8, "derrotas_nos_penaltis": 0, "numero_de_empates": 0, "numero_de_vitorias": 0, "final": 0, "vitorias_nos_penaltis": 0, "numero_de_derrotas": 2 },
Do que não precisávamos? Gerar os gráficos propriamente ditos Componentes Flash ou JavaScript fariam essa parte
Ainda que a arquitetura permita fazermos isso, se quisermos muito Servir páginas inteiras em torno dos componentes com dados
Designers fazem UI melhor do que eu
Por que Django? O admin
O ORM
O módulo simplejson
O mapeamento de URLs
O framework de testes

Mais conteúdo relacionado

PPTX
CSS formatação de parágrafos
PPTX
Módulo: 4 – Desenvolvimento de Páginas Web Estáticas: CSS
PPTX
CSS tipo de letra (fontes)
PDF
Acessibilidade na Web - Senac 2013
PDF
Da persistência de idéias ruins
PDF
PDF
Django Módulo Básico Parte I - Desenvolvimento de uma aplicação Web
CSS formatação de parágrafos
Módulo: 4 – Desenvolvimento de Páginas Web Estáticas: CSS
CSS tipo de letra (fontes)
Acessibilidade na Web - Senac 2013
Da persistência de idéias ruins
Django Módulo Básico Parte I - Desenvolvimento de uma aplicação Web

Semelhante a Django para infográficos (20)

KEY
Django - Desenvolvimento web ágil com Python
ODP
Django - Lightning Talk - We Web Conf
PPT
Python e Django
PPT
F R A M E W O R K D J A N G O
PDF
Workshop Django
PDF
Implementação de
PDF
Django - A sua cápsula de soluções web em python
PDF
Junho 2016 - Django - A sua cápsula de soluções web em python
PDF
Django: desenvolvendo aplicações web de maneira simples e rápida!
ODP
Django - Muito além do básico
PDF
Django Tem Ritmo
PDF
Python mudando o modo de desenvolver para a internet
PDF
Python mudando o modo de desenvolver para a web - Marcos Daniel Petry
PDF
Criando websites a jato com Django
PDF
Criando Websites a Jato com Django - Marcos Daniel Petry
PDF
Desenvolvimento Ágil de Aplicações Web com Python e Django
ODP
Desenvolvendo aplicações web com python e web2py
KEY
Python 06
PDF
Treinamento Básico de Django
Django - Desenvolvimento web ágil com Python
Django - Lightning Talk - We Web Conf
Python e Django
F R A M E W O R K D J A N G O
Workshop Django
Implementação de
Django - A sua cápsula de soluções web em python
Junho 2016 - Django - A sua cápsula de soluções web em python
Django: desenvolvendo aplicações web de maneira simples e rápida!
Django - Muito além do básico
Django Tem Ritmo
Python mudando o modo de desenvolver para a internet
Python mudando o modo de desenvolver para a web - Marcos Daniel Petry
Criando websites a jato com Django
Criando Websites a Jato com Django - Marcos Daniel Petry
Desenvolvimento Ágil de Aplicações Web com Python e Django
Desenvolvendo aplicações web com python e web2py
Python 06
Treinamento Básico de Django
Anúncio

Mais de Ricardo Bánffy (13)

PDF
Continuous testing of a terminal font
PDF
Monitoring and automation
PDF
Measure everything you can
PDF
Lessons learned after 190M lessons served
PDF
Anti-patterns
PPTX
TDD with Python and App Engine
PPTX
TDD com Python e App Engine
PDF
Boredom comes to_those_who_wait
PDF
Quem espera sempre cansa
ODP
Extreme Programming
PPT
Faça seu próprio servidor pirata com OpenVZ
ODP
Ganhando dinheiro com software livre
Continuous testing of a terminal font
Monitoring and automation
Measure everything you can
Lessons learned after 190M lessons served
Anti-patterns
TDD with Python and App Engine
TDD com Python e App Engine
Boredom comes to_those_who_wait
Quem espera sempre cansa
Extreme Programming
Faça seu próprio servidor pirata com OpenVZ
Ganhando dinheiro com software livre
Anúncio

Último (20)

PPTX
Politicas-de-Seguranca-Privacidade-e-Cookies.pptx
PDF
Personalização de tópicos adicionais no SAP Extended Warehouse Management, EW...
DOCX
20250828_Perfis Profissionais em ServiceNow Um Guia Detalhado.docx
PDF
pdfcoffee.com_metalografia-25-pdf-free.pdf
PDF
Metodologia Scrumban-XP - Um Guia Rápido (MrSomebody19).pdf
PPT
inteligencia_artificial REPRESENTAÇÃO DO CONHECECIMENTO
PPTX
RCSOFTdfsdfrvadfvdfvargfvevevrervevqer.pptx
PPTX
Importacao_Ordem_Customizacao_SAP_S4HANA.pptx
PDF
Aula 9 - Funções 202yttvrcrg5-1.pptx.pdf
PDF
Integração da produção com o SAP Extended Warehouse Management, EWM130 Col26
PPTX
AULA 1.pptx GESTÃO DE OPERAÇÕES INDUSTRIAIS
PDF
Arquitetura de Software slides sommerville
PDF
T-pico 1.pdfnsjabdkaksbbsuendnijsbshajanzk
PDF
instalacoes eletricas para industria apressentacao basicas
PDF
Capacitação em Logística – Instituto Federal
PDF
Processamento da remessa no SAP ERP, SCM610 Col15
PPTX
Do código à carreira: O Profissional de TI que o mercado realmente quer - com...
PPTX
Panorama da aviação civil brasileira ANAC
PPTX
Modelo para Qualificação de Mestrado - Tecnologia da Informação
PPTX
Legislação aeronautica na aviação civil Brasileira
Politicas-de-Seguranca-Privacidade-e-Cookies.pptx
Personalização de tópicos adicionais no SAP Extended Warehouse Management, EW...
20250828_Perfis Profissionais em ServiceNow Um Guia Detalhado.docx
pdfcoffee.com_metalografia-25-pdf-free.pdf
Metodologia Scrumban-XP - Um Guia Rápido (MrSomebody19).pdf
inteligencia_artificial REPRESENTAÇÃO DO CONHECECIMENTO
RCSOFTdfsdfrvadfvdfvargfvevevrervevqer.pptx
Importacao_Ordem_Customizacao_SAP_S4HANA.pptx
Aula 9 - Funções 202yttvrcrg5-1.pptx.pdf
Integração da produção com o SAP Extended Warehouse Management, EWM130 Col26
AULA 1.pptx GESTÃO DE OPERAÇÕES INDUSTRIAIS
Arquitetura de Software slides sommerville
T-pico 1.pdfnsjabdkaksbbsuendnijsbshajanzk
instalacoes eletricas para industria apressentacao basicas
Capacitação em Logística – Instituto Federal
Processamento da remessa no SAP ERP, SCM610 Col15
Do código à carreira: O Profissional de TI que o mercado realmente quer - com...
Panorama da aviação civil brasileira ANAC
Modelo para Qualificação de Mestrado - Tecnologia da Informação
Legislação aeronautica na aviação civil Brasileira

Django para infográficos

  • 2. Do que precisávamos Precisávamos de um back-end
  • 3. Que pudesee gerar arquivos XML ou JSON
  • 4. Que pudessem ser editados em tempo-real (ou quase isso)
  • 5. Com uma interface jornalista-friendly
  • 6. E que pudesse gerar diferentes formatos a partir dos dados que foram colocados lá
  • 7. Em resumo... Um CRUD bem feito
  • 8. E um BD que cospe uns JSONS e, se não tiver outro jeito, um XML
  • 11. Gerando JSON [ { "campeao": 227, "vice": 12, "vice_nome": "Argentina", "ano": 1930, "campeao_nome": "Uruguai", "terceiro_nome": "Estados Unidos", "quarto_nome": "Iugosl\u00e1via", "anfitriao": 227, "anfitriao_nome": "Uruguai", "quarto": 240, "campanhas": [ { "partidas_disputadas": 5, "saldo_de_gols": 8, "disputa_de_penaltis": 0, "gols_feitos": 16, "numero_de_pontos_ganhos": 8, "campanha": 196, "selecao_nome": "Argentina", "cartoes_vermelhos": 0, "selecao": 12, "quartas_de_final": 0, "semifinal": 1, "cartoes_amarelos": 0, "gols_sofridos": 8, "derrotas_nos_penaltis": 0, "numero_de_empates": 0, "numero_de_vitorias": 4, "final": 1, "vitorias_nos_penaltis": 0, "numero_de_derrotas": 1 }, { "partidas_disputadas": 2, "saldo_de_gols": -4, "disputa_de_penaltis": 0, "gols_feitos": 0, "numero_de_pontos_ganhos": 0, "campanha": 205, "selecao_nome": "B\u00e9lgica", "cartoes_vermelhos": 0, "selecao": 21, "quartas_de_final": 0, "semifinal": 0, "cartoes_amarelos": 0, "gols_sofridos": 4, "derrotas_nos_penaltis": 0, "numero_de_empates": 0, "numero_de_vitorias": 0, "final": 0, "vitorias_nos_penaltis": 0, "numero_de_derrotas": 2 }, { "partidas_disputadas": 2, "saldo_de_gols": -8, "disputa_de_penaltis": 0, "gols_feitos": 0, "numero_de_pontos_ganhos": 0, "campanha": 206, "selecao_nome": "Bol\u00edvia", "cartoes_vermelhos": 0, "selecao": 29, "quartas_de_final": 0, "semifinal": 0, "cartoes_amarelos": 0, "gols_sofridos": 8, "derrotas_nos_penaltis": 0, "numero_de_empates": 0, "numero_de_vitorias": 0, "final": 0, "vitorias_nos_penaltis": 0, "numero_de_derrotas": 2 },
  • 12. Do que não precisávamos? Gerar os gráficos propriamente ditos Componentes Flash ou JavaScript fariam essa parte
  • 13. Ainda que a arquitetura permita fazermos isso, se quisermos muito Servir páginas inteiras em torno dos componentes com dados
  • 14. Designers fazem UI melhor do que eu
  • 15. Por que Django? O admin
  • 16. O ORM
  • 19. O framework de testes
  • 20.  
  • 21. O Admin Jeito declarativo de definir interfaces de manutenção
  • 23. É o nosso CRUD
  • 24. O ORM Fácil de montar queries
  • 25. Deixo que ele otimize tudo
  • 27. Eventualmente, posso mudar de banco para um NoSQL se a performance melhorar alguma coisa (o pessoal do django-nonrel tem feito bom progresso)
  • 28. Se precisar muito, posso escrever SQL tunado à mão Mas nunca precisei
  • 29. O módulo simplejson simplejson.JSONEncoder(indent = 4).encode({'rotulo': 'meu dado', 'valor': 123})
  • 31. Não é XML (e isso é bom)
  • 32. O mapeamento de URLs Permite criar a ilusão de arquivos estáticos
  • 33. O cliente não precisa saber o que está acontecendo
  • 34. As URLs são bonitas (memorizáveis) A linha (r'^(?P<indicador_slug>[\w\-]*)_datas.json$', views.indicador_datas), Cria URLs como http://servidor/aplicacao/pib_datas.json E ficam amigáveis para caches
  • 35. Como ficou 2 servidores Apache com Django
  • 38. … atrás de um balanceador
  • 39. Back-end atende até 400 requests por segundo (em cada servidor), mas nunca chega nem perto disso
  • 40. BD se sente solitário, sem ter o que fazer
  • 41. Caches atendem quase todos os requests
  • 42. Tipos de dados Cada tipo de dado pede uma aplicação diferente (no nosso modelo)
  • 43. Há aplicações compartilhadas Isso viola um pouco as recomendações oficiais from backend.common.models import Pais, UF Mas resolve nosso problema de dados partilhados
  • 44. e compartimenta o acesso aos dados
  • 45. Como podemos crescer? Mais caches por backend
  • 49. Não estamos nem perto dos limites da infra-estrutura
  • 50. Alternativas Elastic Search tem sido pesquisado Simples de usar
  • 52. … mas não pode cruzar dados e fazer queries complicadas no servidor