Django - Desenvolvimento web ágil com Python

Loading...

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

0 comments

Post a comment

    Post a comment
    Embed Video
    Edit your comment Cancel

    4 Favorites

    Django - Desenvolvimento web ágil com Python - Presentation Transcript

    1. Django Desenvolvimento web ágil com Python Igor Sobreira www.igorsobreira.com
    2. Quem sou eu Me chamo Igor Sobreira Faço TSI no IFPB (antigo CEFET-PB) Programo em Python a uns 3, 4 anos Trabalho com Django na Smart Nuts Technology (www.smartnutstechnology.com) Velejo de windsurf (quando dá...)
    3. O mini-projeto relativo aos slides está em: http://igorsobreira.com/sitemedia/ensol.zip
    4. O que é Django?
    5. Não é Jungle. É Django.
    6. Não é Django Reinhardt ... na verdade é
    7. • Framework web, escrito em Python • Focado em desenvilmento ágil • “Nós fazemos a parte repetitiva, você faz o que interessa”
    8. Django é Python!
    9. • Tipagem dinâmica e forte • Orientada a Objetos (multiparadigma) • Fácil de aprender • “Pouco é muito” • Baterias inclusas • Extensível • Preza pela beleza do
    10. DRY Don’t Repeat Yourself http://www.flickr.com/photos/plinton/215437652/
    11. Projeto & Aplicações
    12. Projeto: http://ensol.org.br trabalhos contato inscrições admin usuários paginas
    13. Projeto Apps externas tagging trabalhos mailer inscrições photogallery django.contrib admin auth flatpages gis ...
    14. Caminho de uma requisição
    15. Middleware Fica no “meio do caminho” process_request process_response Manipular o request e/ou o response de maneira transparente Alguns disponíveis G-Zip GET Condicional
    16. Escute os sinais Seja notificado quando algum evento ocorrer. Sinais relacionados a request, models. E os seus.
    17. E isso é MVC? • Onde estão os Controllers? • O que as “views” estão fazendo ali?
    18. Alguns chamam
    19. Criando um projeto
    20. $ django-admin.py startproject ensol
    21. settings.py é Python, por favor, tudo menos XML! http://www.flickr.com/photos/willpate/63814657/
    22. • Você precisa de um Servidor Web • O django tem um, para desenvolvimento • Não use em produção.
    23. Aplicações Deve fazer uma coisa, e fazer direito Se a descrição de sua aplicação for maior que uma linha, talvez ela precise ser quebrada Reutilizável (DRY lembra?) Talvez já exista!
    24. $ python manage.py startapp trabalhos A aplicação é auto-contida tests.py urls.py templates/ admin.py
    25. Instalando a aplicação settings.py
    26. Modelo de Dados models.py
    27. Esqueça SQL! Nós temos objetos, e queremos persistí-los É preciso um mapeamento entre classes/objetos e tabelas/linhas ORM!
    28. Eu crio classes e objetos em Python
    29. O ORM converte para SQL
    30. E com suporte a vários bancos! PostgreSQL, MySQL, SQLite e Oracle settings.py
    31. $ python manage.py syncdb Cria as tabelas no banco. E pronto.
    32. Alterei minha classe ... O syncdb não atualiza Use SQL na unha Ou aplicações externas: south desed django-evolution yasdel
    33. E como eu salvo e manipulo meus modelos?
    34. Eu criei esse usuário no primeiro syncdb, lembra?
    35. Interface Administrativa
    36. O famoso CRUD Trabalhoso Chato Repetitivo Ops. DRY, lembra?
    37. O django já fez pra você Ele conhece seus models, então ele sabe o que você quer editar Uma aplicação do django.contrib Mesmo que não use em produção, é útil no desenvolvimento O admin não é sua aplicação!
    38. Só precisa registrar o seu model Instale a aplicação Habilite a URL E rode o syncdb
    39. Mapeando ações para cada URL urls.py e views.py
    40. /Main#PhotoTag.aspxrl=mo&uid=4504979850246063103
    41. /crime/by-place/24/by-primary-type/narcotics/ /blog/2009/4/15/estruturas-de-dados-do-django/ Estamos na fase de URLs amigáveis
    42. URLs são regexs
    43. Views recebem um HttpRequest, e parâmetros de URL retorna um HttpResponse
    44. Templates
    45. O que é? Uma maneira mais poderosa de gerar strings Não necessariamente HTML Nem precisa ser usado como resposta HTTP Permite loops e condicionais, além de variáveis
    46. {% for elemento in coleção %} {% endfor %} {% if algo %} ... {% else %} ... {% endif %} {{ variável }} {{ variável|filtro }}
    47. Herança de templates
    48. base.html topo page.html (extends base.html) block conteúdo menu (vazio) block conteúdo Aqui vai o conteúdo real rodapé endblock
    49. Cadê meu include? Já era. Nova maneira de pensar. :-) Mas não é o fim do mundo. Existe uma tag {% include %} Porém use com moderação. Herança é bem mais flexível
    50. O que mais?
    51. Formulários Fácil criação de formulários, totalmente OO Traz validação e renderização dos campos hooks para validação customizada Formulários para Models Form, ModelForm, FormWizard, FormPreview, formsets
    52. Testes automizados doctests e unit tests fixtures test runner test client teste de envio de emails
    53. Cache Onde? Como? Memcached Por site Banco de Dados Por view Arquivos Por bloco de template Memória local Sob demanda
    54. Feeds RSS e Atom Outras alternativas ao seu conteúdo. Extenda a classe Feed Sobrescreva alguns métodos/atributos title, link, description, items, etc ... Diga o tipo (RSS ou Atom) Publique sob uma url.
    55. Sitemaps Seja amigo dos bots de busca Extenda a class Sitemap Sobrescreva alguns métodos/atributos changefreq, priority, items, lastmod, ... Publique sob uma url.
    56. Cadê o AJAX?
    57. Django é um framework de backend, não traz código javascript Ele faz a parte de backend (JSON, XML, YAML) Serializa Desserializa
    58. Aplicações do contrib comments formtools Content Types markup localflavor sites flatpages redirects gis databrowse
    59. i18n Suporte a internacionalização O admin já vem traduzido em pt_BR
    60. Seguraça SQL Injection Cross-Site Scripting (XSS) Cross-Site Request Forgery (CSRF) E-Mail Header Injection DEBUG = False em produção
    61. Deployment WSGI Também ... Apache + mod_wsgi Apache + mod_python nginx CGI lighttpd FastCGI Twisted.web2 prefira WSGI CherryPy
    62. Quem tá usando?
    63. vericia.com
    64. everyblock.com
    65. jaiku.com
    66. ucsvirtual.ucs.br
    67. A globo.com usa Django para diversas aplicações
    68. Documentação docs.djangoproject.com docs.djangobrasil.org (Projeto de tradução. Ajude!) djangobook.com
    69. Comunidade djangoproject.com - site oficial djangobrasil.org - site oficial nacional djangogigs.com - vagas de empregro djangopeople.net - rede social djangosites.org - rede social de sites em django djangosearch.com - busca assuntos relacionados djangocodesearch.com - busca nos fontes
    70. Comunidade Google Grupos django-brasil - 1014 django-users - 14289 IRC #django-br #django grupypb.net - Python na Paraíba
    71. Obrigado. Dúvidas? Igor Sobreira http://igorsobreira.com

    + Igor SobreiraIgor Sobreira, 4 months ago

    custom

    815 views, 4 favs, 2 embeds more stats

    Visão geral do framework web Django.

    More info about this document

    CC Attribution License

    Go to text version

    • Total Views 815
      • 788 on SlideShare
      • 27 from embeds
    • Comments 0
    • Favorites 4
    • Downloads 43
    Most viewed embeds
    • 16 views on http://igorsobreira.com
    • 11 views on http://www.igorsobreira.com

    more

    All embeds
    • 16 views on http://igorsobreira.com
    • 11 views on http://www.igorsobreira.com

    less

    Flagged as inappropriate Flag as inappropriate
    Flag as inappropriate

    Select your reason for flagging this presentation as inappropriate. If needed, use the feedback form to let us know more details.

    Cancel
    File a copyright complaint
    Having problems? Go to our helpdesk?

    Categories