Construindo Sistemas Com Django

  • 3,912 views
Uploaded on

Slides da palestra na PythonBrasil[5]

Slides da palestra na PythonBrasil[5]

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
No Downloads

Views

Total Views
3,912
On Slideshare
0
From Embeds
0
Number of Embeds
3

Actions

Shares
Downloads
132
Comments
2
Likes
5

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide
  • Primeira vez numa PyCon Sem hábito de falar em público Não é fácil falar para uma platéia dessa Todo mundo cansado Não aguento mais dormir no colchonete (é isso ou dormir na cama de casal com o Semente)
  • Djapian – Rafael Django-diario – Semente Cometi erros que não quero cometer mais Existem centenas no Google Code e DjangoPlugables Aplicação plugável possui características que permitem que ela seja facilmente conectada a outras Componentização levada ao extremo
  • Djapian – Rafael Django-diario – Semente Cometi erros que não quero cometer mais Existem centenas no Google Code e DjangoPlugables Aplicação plugável possui características que permitem que ela seja facilmente conectada a outras Componentização levada ao extremo
  • Djapian – Rafael Django-diario – Semente Cometi erros que não quero cometer mais Existem centenas no Google Code e DjangoPlugables Aplicação plugável possui características que permitem que ela seja facilmente conectada a outras Componentização levada ao extremo
  • Djapian – Rafael Django-diario – Semente Cometi erros que não quero cometer mais Existem centenas no Google Code e DjangoPlugables Aplicação plugável possui características que permitem que ela seja facilmente conectada a outras Componentização levada ao extremo
  • Djapian – Rafael Django-diario – Semente Cometi erros que não quero cometer mais Existem centenas no Google Code e DjangoPlugables Aplicação plugável possui características que permitem que ela seja facilmente conectada a outras Componentização levada ao extremo
  • Djapian – Rafael Django-diario – Semente Cometi erros que não quero cometer mais Existem centenas no Google Code e DjangoPlugables Aplicação plugável possui características que permitem que ela seja facilmente conectada a outras Componentização levada ao extremo
  • Djapian – Rafael Django-diario – Semente Cometi erros que não quero cometer mais Existem centenas no Google Code e DjangoPlugables Aplicação plugável possui características que permitem que ela seja facilmente conectada a outras Componentização levada ao extremo
  • Djapian – Rafael Django-diario – Semente Cometi erros que não quero cometer mais Existem centenas no Google Code e DjangoPlugables Aplicação plugável possui características que permitem que ela seja facilmente conectada a outras Componentização levada ao extremo
  • Djapian – Rafael Django-diario – Semente Cometi erros que não quero cometer mais Existem centenas no Google Code e DjangoPlugables Aplicação plugável possui características que permitem que ela seja facilmente conectada a outras Componentização levada ao extremo
  • Djapian – Rafael Django-diario – Semente Cometi erros que não quero cometer mais Existem centenas no Google Code e DjangoPlugables Aplicação plugável possui características que permitem que ela seja facilmente conectada a outras Componentização levada ao extremo
  • Djapian – Rafael Django-diario – Semente Cometi erros que não quero cometer mais Existem centenas no Google Code e DjangoPlugables Aplicação plugável possui características que permitem que ela seja facilmente conectada a outras Componentização levada ao extremo
  • Djapian – Rafael Django-diario – Semente Cometi erros que não quero cometer mais Existem centenas no Google Code e DjangoPlugables Aplicação plugável possui características que permitem que ela seja facilmente conectada a outras Componentização levada ao extremo
  • Djapian – Rafael Django-diario – Semente Cometi erros que não quero cometer mais Existem centenas no Google Code e DjangoPlugables Aplicação plugável possui características que permitem que ela seja facilmente conectada a outras Componentização levada ao extremo
  • Djapian – Rafael Django-diario – Semente Cometi erros que não quero cometer mais Existem centenas no Google Code e DjangoPlugables Aplicação plugável possui características que permitem que ela seja facilmente conectada a outras Componentização levada ao extremo
  • Djapian – Rafael Django-diario – Semente Cometi erros que não quero cometer mais Existem centenas no Google Code e DjangoPlugables Aplicação plugável possui características que permitem que ela seja facilmente conectada a outras Componentização levada ao extremo

Transcript

  • 1. Marinho Brandão - PythonBrasil [5], 2009, Caxias do Sul Construindo sistemas com Django
  • 2. Do que vamos falar
      • Sistemas: corporativos ou não, ERP, CRM, administração um pouco melhor de sites brasileiros, etc.
      • 3. Django é apropriado para construir sistemas...
      • 4. … mas algumas coisas ainda não estão tão apropriadas assim (formatações, máscaras, alinhamento, etc.)
      • 5. Usar ou não usar o Admin?
      • 6. Facilidades disponíveis no django-plus
  • 7. Escolhendo entre usar Admin ou não
      • Admin = conjunto de RAD para funções existentes no Django
      • 8. Porquê reinventar a roda?
      • 9. Comportamentos do sistema aplicados a todo o sistema não devem ser feitas para cada classe ou tela, mas em um só lugar e de uma só vez
      • 10. Optar por não usar o Admin também pode ser uma boa opção. E também não é complicado...
  • 11. Projeto base desta apresentação
      • Aplicações plugáveis utilizadas
        • django-plus
        • 12. django-pagination
      • Aplicação 'sistema'
        • Empresa
        • 13. MultiEmpresa
      • Aplicação 'caixa'
        • TipoComposicao
        • 14. LancamentoCaixa
        • LancamentoCaixaComposicao
      • http://github.com/marinho/django-pyconbrasil-2009-sistemas/
  • 15. Preparando o projeto
      • INSTALLED_APPS += (
        • 'django.contrib.admin',
        • 16. 'djangoplus', # django-plus
        • 17. 'pagination', # django-pagination
        • )
      • Criando symlink dos templates do Admin e o por quê de fazer isso
        • templates/admin_original -> django/contrib/admin/templates/admin
      • URL vazia apontada para admin.site.urls
        • (r'', include(admin.site.urls)),
  • 18. Customizando templates do Admin
      • Templates mais usados
        • base.html base_site.html
        • 19. change_form.html change_list.html
        • 20. filter.html index.html
        • 21. edit_inline/tabular.html
      • Blocks mais comuns
        • extrahead content
        • 22. breadcrumbs change_list -> search
        • change_form -> object-tools change_form -> form_top
        • 23. change_form -> after_field_sets
        • 24. change_form -> after_related_objects
  • 25. Customizando templates do Admin (2)
      • Template 'base_limpo.html'
      • 26. Classe CSS 'module'
      • 27. Fieldset + H2
      • 28. Acrescentando scripts de JavaScript (jQuery)
      • 29. Acrescentando folha de estilos
      • 30. Customizando o breadcrumbs
      • 31. Customizando o object-tools
  • 32. Customizando templates do Admin (2)
      • Template 'base_limpo.html'
      • 33. Classe CSS 'module'
      • 34. Fieldset + H2
      • 35. Acrescentando scripts de JavaScript (jQuery)
      • 36. Acrescentando folha de estilos
      • 37. Customizando o breadcrumbs
      • 38. Customizando o object-tools
  • 39. Customizando a listagem
      • Alterando o template 'filter.html' para apresentar filtros como combo boxes (ao invés de listas)
      • 40. Apresentando um sumário independente dos resultados
      • 41. Criando um filtro especial abaixo do form de busca
        • quebrando o request.GET para tornar isso possível
        • 42. Método queryset
  • 43. Extendendo classes básicas do Admin
      • Crie sua própria ModelAdmin, extendendo a original
      • 44. Faça o mesmo com
      • Usar sempre as classes extendidas para generalizar as customizações
  • 47. Formatações na listagem
      • Formatação de data e data/hora usando django.utils.translantion no urls.py do projeto
      • 48. Formatação de valores decimais encapsulando campos desse tipo (fazendo isso de forma genérica)
  • 49. Formatações na edição
      • Campos com máscaras, usando jquery.maskeditinput.js
        • media/js/mascara.js
      • Usando o get_form e o get_formset para alterar campos de forma genérica do ModelAdmin e TabularInline
      • 50. Campos de data
        • Apenas modificar o input_formats não é o suficiente, é preciso criar seu próprio widget
      • Campos de valor decimal
        • Substituindo o campo por outro, que por sua vez usa um widget customizado
  • 51. Formatações na edição (2)
      • Mostrando listagem sem inline
      • 52. Forçando maiúsculas nos campos de texto
        • Classe 'forca_caixa_alta'
        • media/js/widgets.js
      • Desabilitando tecla ENTER
        • media/js/base.js
      • Campos de números inteiros
        • utils.widgets.IntegerInput
  • 53. Formatações na edição (3)
      • Informando valor inicial de um campo usando parâmetro na URL
      • 54. Campos de chave estrangeira com AjaxFKWidget
        • djangoplus.widgets.AjaxFKWidget
        • 55. djangoplus.widgets.AjaxFKDriver
        • 56. URLs usadas
        • 57. Depende do django-pagination
      • Campos somente-leitura
        • utils.read_only.ReadOnlyTextWidget
  • 58. Criando uma URL customizada
      • Usando método get_urls
      • 59. Variável 'title'
      • 60. Aplicando permissão com decorator permission_required
  • 61. O que esperar para o futuro?
      • Grande parte das customizações apresentar um dia serão suportadas oficialmente, à medida que o Django evoluir
      • 62. Usar customizações com consciência para não criar problemas
      • 63. Decidir com sabedoria entre criar customizações generalizadas ou específicas
  • 64. Conclusão Perguntas?   [email_address] http://www.marinhobrandao.com http://www.aprendendodjango.com