SlideShare una empresa de Scribd logo
1 de 12
Descargar para leer sin conexión
Jamil Atta Junior
atta.jamil@gmail.com
http://github.com/jamilatta
Pythonbrasil[9]
Django Forms com muitos dados
Jamil Atta Junior
atta.jamil@gmail.com
http://github.com/jamilatta
Pythonbrasil[9]
SciELO
A comemoração dos 15 anos da Rede SciELO reunirá autoridades e especialistas em
pesquisa e comunicação científica. O objetivo do encontro é destacar e debater o estado da
arte em comunicação científica em acesso aberto e os desafios para o desenvolvimento dos
periódicos científicos e do Programa SciELO.
http://www.scielo15.org/
+440.000 artigos científicos
+1.000 periódicos
+10.000.000 citações
+1.800.000 acessos/dia
Jamil Atta Junior
atta.jamil@gmail.com
http://github.com/jamilatta
Pythonbrasil[9]
http://www.slideshare.net/gustavofons/modelagem-de-dados-semiestruturados-com-isisdm
Dados semi-estruturados
Jamil Atta Junior
atta.jamil@gmail.com
http://github.com/jamilatta
Pythonbrasil[9]
Para construir formulários... com o que se
preocupar?
Crescimento dos dados
Tabelas que representam atributos multivalorados
Modelagem dos dados
Formulários alinhados
Jamil Atta Junior
atta.jamil@gmail.com
http://github.com/jamilatta
Pythonbrasil[9]
● ForeignKey
● ManyToManyField
● Inline Formset (seus relacionamento)
Campos que geram lentidão no
carregamento do formulário
Jamil Atta Junior
atta.jamil@gmail.com
http://github.com/jamilatta
Pythonbrasil[9]
Exemplo livro capítulo
Evitar o uso de formtsets, inlineformsets e utilizar AJAX para os campos ForeignKey e ManyToManyField
Jamil Atta Junior
atta.jamil@gmail.com
http://github.com/jamilatta
Pythonbrasil[9]
Como evitar lentidão no carregamento dos
formulários
● Override queryset nos objetos do formulário
● AJAX para os campos de relacionamentos
● Componentes/Campos customizados
● Uso de métodos only() e defer()
Jamil Atta Junior
atta.jamil@gmail.com
http://github.com/jamilatta
Pythonbrasil[9]
Campos customizados no Django
https://docs.djangoproject.com/en/1.5/howto/custom-model-fields/
class CustomField(forms.ModelMultipleChoiceField):
widget = CustomWidget
def __init__(self, model, *args, **kwargs):
#Necessário informar o modelo
#Nesse momento é possível utilizar ``queries``
mais baratas.
Subclasse do campo ModelMultipleChoiceField (fields.py)
class CustomWidget(forms.TextInput):
class Media:
css = {"all": ("css/.css",)}
js = ("js.js”,)
def __init__(self, attrs=None, **kwargs):
def render(self, name, value, attrs=None):
#Sobreescreva o método render
Subclasse widget TextInput (widgets.py)
Jamil Atta Junior
atta.jamil@gmail.com
http://github.com/jamilatta
Pythonbrasil[9]
select_related e prefetch_related
● Sempre explicitando os campos de relacionamento
● Utilize o param depth para limitar lookups
● Use prefetch para ManyToManyField
● Uso do atributo db_indexed=True
Jamil Atta Junior
atta.jamil@gmail.com
http://github.com/jamilatta
Pythonbrasil[9]
Cacheamento
Diminui o tempo de resposta.
No Django há um grande suporte a memcached.
Opção de criar “custom backend”.
Jamil Atta Junior
atta.jamil@gmail.com
http://github.com/jamilatta
Pythonbrasil[9]
Ferramentas para analisar a performance
● Django Debug Toolbar (cache_panel.CachePanel)
● Yslow (extensão para o Firefox e Chrome)
● Django Timelog (similar ao Ngnix Logging)
● Ferramentas de Load Testing (ab, FunkLoad, Jmeter
e HTTPerf)
● NewRelic (application monitoring)
Timelog
Yslow
Debug Toolbar
Jamil Atta Junior
atta.jamil@gmail.com
http://github.com/jamilatta
Pythonbrasil[9]
Dúvidas???
Obrigado.
http://www.slideshare.net/JamilAttaJunior

Más contenido relacionado

Similar a Django forms com muito dados

SciELO e a interoperabilidade, no século 21
SciELO e a interoperabilidade, no século 21SciELO e a interoperabilidade, no século 21
SciELO e a interoperabilidade, no século 21
SciELO - Scientific Electronic Library Online
 

Similar a Django forms com muito dados (14)

Os3
Os3Os3
Os3
 
ApresentaçãO1
ApresentaçãO1ApresentaçãO1
ApresentaçãO1
 
Pythonificando a Universidade
Pythonificando a UniversidadePythonificando a Universidade
Pythonificando a Universidade
 
Cp2011 python agil-ramiroluz
Cp2011 python agil-ramiroluzCp2011 python agil-ramiroluz
Cp2011 python agil-ramiroluz
 
SciELO e a interoperabilidade, no século 21
SciELO e a interoperabilidade, no século 21SciELO e a interoperabilidade, no século 21
SciELO e a interoperabilidade, no século 21
 
Trab De Ead 1
Trab De Ead 1Trab De Ead 1
Trab De Ead 1
 
Android DevConference - Gerenciando a publicação e atualização de 450 apps se...
Android DevConference - Gerenciando a publicação e atualização de 450 apps se...Android DevConference - Gerenciando a publicação e atualização de 450 apps se...
Android DevConference - Gerenciando a publicação e atualização de 450 apps se...
 
Tutorial sobre Bootstrap
Tutorial sobre BootstrapTutorial sobre Bootstrap
Tutorial sobre Bootstrap
 
TCHELINUX 2019 - Web Scraping: a arte de automatizar a recuperação de informa...
TCHELINUX 2019 - Web Scraping: a arte de automatizar a recuperação de informa...TCHELINUX 2019 - Web Scraping: a arte de automatizar a recuperação de informa...
TCHELINUX 2019 - Web Scraping: a arte de automatizar a recuperação de informa...
 
Python na reformulação arquitetural do projeto SciELO
Python na reformulação arquitetural do projeto SciELOPython na reformulação arquitetural do projeto SciELO
Python na reformulação arquitetural do projeto SciELO
 
A Importância das Tecnologias Livres e Abertas para o Empreendedorismo Paraen...
A Importância das Tecnologias Livres e Abertas para o Empreendedorismo Paraen...A Importância das Tecnologias Livres e Abertas para o Empreendedorismo Paraen...
A Importância das Tecnologias Livres e Abertas para o Empreendedorismo Paraen...
 
Workshop o ABC da Web 2.0 para PME
Workshop o ABC da Web 2.0 para PMEWorkshop o ABC da Web 2.0 para PME
Workshop o ABC da Web 2.0 para PME
 
Não se repita - Django Generic Views - Semana Acadêmica TADS 2015.
Não se repita - Django Generic Views - Semana Acadêmica TADS 2015.Não se repita - Django Generic Views - Semana Acadêmica TADS 2015.
Não se repita - Django Generic Views - Semana Acadêmica TADS 2015.
 
Desmitificando as aplicações RESTFul usando Django Rest Framework
Desmitificando as aplicações RESTFul usando Django Rest FrameworkDesmitificando as aplicações RESTFul usando Django Rest Framework
Desmitificando as aplicações RESTFul usando Django Rest Framework
 

Último

Último (6)

ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object Calisthenics
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
 
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docxATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemplo
 

Django forms com muito dados