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 Red...
Jamil Atta Junior
atta.jamil@gmail.com
http://github.com/jamilatta
Pythonbrasil[9]
http://www.slideshare.net/gustavofons/m...
Jamil Atta Junior
atta.jamil@gmail.com
http://github.com/jamilatta
Pythonbrasil[9]
Para construir formulários... com o que...
Jamil Atta Junior
atta.jamil@gmail.com
http://github.com/jamilatta
Pythonbrasil[9]
● ForeignKey
● ManyToManyField
● Inline...
Jamil Atta Junior
atta.jamil@gmail.com
http://github.com/jamilatta
Pythonbrasil[9]
Exemplo livro capítulo
Evitar o uso de ...
Jamil Atta Junior
atta.jamil@gmail.com
http://github.com/jamilatta
Pythonbrasil[9]
Como evitar lentidão no carregamento do...
Jamil Atta Junior
atta.jamil@gmail.com
http://github.com/jamilatta
Pythonbrasil[9]
Campos customizados no Django
https://d...
Jamil Atta Junior
atta.jamil@gmail.com
http://github.com/jamilatta
Pythonbrasil[9]
select_related e prefetch_related
● Sem...
Jamil Atta Junior
atta.jamil@gmail.com
http://github.com/jamilatta
Pythonbrasil[9]
Cacheamento
Diminui o tempo de resposta...
Jamil Atta Junior
atta.jamil@gmail.com
http://github.com/jamilatta
Pythonbrasil[9]
Ferramentas para analisar a performance...
Jamil Atta Junior
atta.jamil@gmail.com
http://github.com/jamilatta
Pythonbrasil[9]
Dúvidas???
Obrigado.
http://www.slidesh...
Upcoming SlideShare
Loading in …5
×

Django forms com muito dados

645 views
507 views

Published on

Apresentação sobre formulário em Django com muitos dados realizado na Pythonbrasil[9] em Brasília.

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
645
On SlideShare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
16
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Django forms com muito dados

  1. 1. Jamil Atta Junior atta.jamil@gmail.com http://github.com/jamilatta Pythonbrasil[9] Django Forms com muitos dados
  2. 2. 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
  3. 3. 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
  4. 4. 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
  5. 5. 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
  6. 6. 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
  7. 7. 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()
  8. 8. 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)
  9. 9. 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
  10. 10. 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”.
  11. 11. 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
  12. 12. Jamil Atta Junior atta.jamil@gmail.com http://github.com/jamilatta Pythonbrasil[9] Dúvidas??? Obrigado. http://www.slideshare.net/JamilAttaJunior

×