SlideShare uma empresa Scribd logo

Django Tem Ritmo

I
italomaia

O documento apresenta o framework Django para desenvolvimento web com Python. Ele descreve os principais componentes do Django, como models, views, templates e contrib apps, mostrando como eles trabalham juntos para construir aplicações web rápidas e escaláveis. O documento também destaca os princípios do Django, como DRY, KISS e MVT.

1 de 15
Baixar para ler offline
DJANGO TEM RITMO!




Palestrante: Italo MC Maia
Duração: 50min
Blog: http://tiny.cc/italo_blog
Site: http://tiny.cc/italomaia
http://www.python.org.br          http://www.pugce.org
Frameworks Web

         Frameworks              Frameworks Python
      MyFaces - Java                TurboGears
  RubyOnRails - Ruby                  Web.Py
       Catalyst - Perl                Web2Py
         Kepler - Lua                 Pylons
       CakePHP - PHP                 Karrigell

http://www.python.org.br               http://www.pugce.org
Django!

Desenvolvido para “Lawrence Journal-World”
http://www.lawrence.com/

                                 - Princípios -
                                     ORM
                                      DRY
                                     KISS
                                  MTV (MVC)
                                    Rápido
                                   Escalável
                              Poucas dependências
http://www.python.org.br             http://www.pugce.org
Melhores Práticas!

      Baixo acoplamento             Lógica de domínio
      Urls/Visão/Modelo               auto-contida
   Explícito é melhor que                Modelo
           implícito                     Poliglota
       Menos mágica!                Internacionalização
             Enxuto                 Ajax e companhia
          Só o essencial!          XML, (X)HTML, JSON
           Produtivo                    Extensível
       - Código + Produto                TUDO!
http://www.python.org.br                  http://www.pugce.org
models.py

                   ORM padrão do Django

                            from django.models import *
      Solução InHouse       # define a classe/tabela no banco
                            class Page(models.Model):
         Lazy Queries          name=CharField(max_length=100)
                               slug=SlugField(primary_key=True)
        ActiveRecord           text=models.TextField()


     1to1, 1toM, MtoN       # cria uma página no banco
                            Page.objects.create(name='Pugce', slug='pugce',
   Independe do Banco       text='Amo tudo isso!')
                            pg = Page.objects.get(pk='pugce') # busca por PK
              Sinais        query = Page.objects.all() # todas as paginas!
                            # paginas que o nome comeca com 'P'
                            Page.objects.filter(name__startswith='P')

http://www.python.org.br                            http://www.pugce.org
urls.py

              Mapeamento de Requisições

                           from django.conf.urls.defaults import *
                           from django.contrib import admin
                           from cms import views
                           # acha modelos p/ o django-admin
          DRY              admin.autodiscover()

   Baixo acoplamento       # (<regex>, view.metodo ou include(modulo_url))
                           urlpatterns = patterns('',
    Exp. Regulares            (r'^admin/', include(admin.site.urls)),
                              (r'^accounts/(?P<username>[w_]+)/',
       RÁPIDO!!                  include('pugce.accounts.urls')),
                              url(r'^(?P<slug>[0-9A-Za-z-_.//]+)/$',
                                 views.page, name='cms-page')
                           )

http://www.python.org.br                           http://www.pugce.org
forms.py

                   Geração de Formulários
     - Gerados -                        - Validação -
   A partir do modelo                    Automática
     Manualmente                        Personalizada
                            from django import forms
                            from . import models
  - Características -       # form a partir de um modelo
      Sem HTML              class PageForm(forms.ModelForm):
                                 class Meta: model=models.Page
   Mapeamento auto.         # testando o formulário
                            page=models.Page.objects.get(pk='pugce')
  Tratamento de erros       frm=PageForm({“name”:”huguinho”}, instance=page)
                            if frm.is_valid(): frm.save()
                            else: print frm.errors
http://www.python.org.br                              http://www.pugce.org
views.py

                       Lógica da Aplicação

                               from django.shortcuts import 
 - Características -           render_to_response as rp
                               from . import models
       Simples
    Valida Acesso              # primeiro argumento deve ser a requisicao
                               def page(request, slug):
 Responde Requisições              # slug: identificador de uma Page
                                   pg = models.Page.objects.get(pk=slug)
   Acessa o Modelo                 rp_dict = pg.__dict__
Independe do Template
                                   if request.is_ajax(): # requisicao ajax?
  Ajax Transparente                     return rp('pg.json', rp_dict,
                                             mimetype='application/json')
                                   else: return rp('pg.html', rp_dict)

http://www.python.org.br                               http://www.pugce.org
Templates!

                    Mostrando Resultado!

             Tags                      Flexível
        {% tagname %}          Funciona com qualquer
            Variáveis          arquivo texto, seja XML,
                               HTML, XHTML, TXT...
             {{ var }}
             Filtros
                                 Melhores Práticas
            var|filtro
                             Separa Lógica e Apresentação


http://www.python.org.br                  http://www.pugce.org
base.html




http://www.python.org.br           http://www.pugce.org
page.html




http://www.python.org.br           http://www.pugce.org
Página montada

          HTML exibindo Page(pk='pugce')




http://www.python.org.br             http://www.pugce.org
contribs.*

    Admin                     Csrf       Humanize
 Contenttype                   Gis       Redirects
  Formtools                  Markup     Syndication
 Localflavor                  Sites      Comments
  Sitemaps                    Auth       Flatpages
  Admindocs                Databrowse     Sessions
                                        Webdesign

http://www.python.org.br                http://www.pugce.org
contrib.admin

                   Interface Administrativa

                                      Acesso ao banco
                                           Crud
                                       Automatizado
                                           Logs
                                        Permissões
                                       Personalizável

 fonte:djangobook.zinpep


http://www.python.org.br                http://www.pugce.org
Agradecimento
     Agradeço a presença de todos e aos meus
     colegas coordenadores por serem grandes
              pessoas e profissionais!


Mais informações em:
http://djangoproject.com/
http://www.djangobrasil.org/



http://www.python.org.br             http://www.pugce.org

Recomendados

Django: Desenvolvendo uma aplicação web em minutos
Django: Desenvolvendo uma aplicação web em minutosDjango: Desenvolvendo uma aplicação web em minutos
Django: Desenvolvendo uma aplicação web em minutosRodrigo Nossal
 
Django - Desenvolvimento web ágil com Python
Django - Desenvolvimento web ágil com PythonDjango - Desenvolvimento web ágil com Python
Django - Desenvolvimento web ágil com PythonIgor Sobreira
 
Treinamento Básico de Django
Treinamento Básico de DjangoTreinamento Básico de Django
Treinamento Básico de DjangoLeandro Zanuz
 
PHPSP TestFest 2009
PHPSP TestFest 2009PHPSP TestFest 2009
PHPSP TestFest 2009Rafael Dohms
 
PHP e AJAX: do Request ao Framework
PHP e AJAX: do Request ao FrameworkPHP e AJAX: do Request ao Framework
PHP e AJAX: do Request ao FrameworkRafael Dohms
 
Desenvolvendo aplicações web com python e web2py
Desenvolvendo aplicações web com python e web2pyDesenvolvendo aplicações web com python e web2py
Desenvolvendo aplicações web com python e web2pyGilson Filho
 
Minicurso de Django - Desenvolvimento ágil web com Django e Python
Minicurso de Django - Desenvolvimento ágil web com Django e PythonMinicurso de Django - Desenvolvimento ágil web com Django e Python
Minicurso de Django - Desenvolvimento ágil web com Django e PythonGuilherme Garcia
 

Mais conteúdo relacionado

Mais procurados

Tutorial Django + Python
Tutorial Django + PythonTutorial Django + Python
Tutorial Django + PythonMateus Padua
 
Python e Django
Python e DjangoPython e Django
Python e Djangopugpe
 
Mini curso de django
Mini curso de djangoMini curso de django
Mini curso de djangorosenclever
 
Melhorando a Experiência do Usuário com JavaScript e jQuery
Melhorando a Experiência do Usuário com JavaScript e jQueryMelhorando a Experiência do Usuário com JavaScript e jQuery
Melhorando a Experiência do Usuário com JavaScript e jQueryHarlley Oliveira
 
De Zero à Web com Python e Django
De Zero à Web com Python e DjangoDe Zero à Web com Python e Django
De Zero à Web com Python e DjangoOsvaldo Santana Neto
 
Html5 - O futuro da Web
Html5 - O futuro da WebHtml5 - O futuro da Web
Html5 - O futuro da WebJose Berardo
 
[FISL 16] PHP no Campo de Batalha: Segurança Avançada e Programação Defensiva...
[FISL 16] PHP no Campo de Batalha: Segurança Avançada e Programação Defensiva...[FISL 16] PHP no Campo de Batalha: Segurança Avançada e Programação Defensiva...
[FISL 16] PHP no Campo de Batalha: Segurança Avançada e Programação Defensiva...Rafael Jaques
 
Introdução ao Desenvolvimento WEB com Ruby on Rails
Introdução ao Desenvolvimento WEB com Ruby on RailsIntrodução ao Desenvolvimento WEB com Ruby on Rails
Introdução ao Desenvolvimento WEB com Ruby on RailsJulio Betta
 
Lib.SAPO.JS - Codebits2007
Lib.SAPO.JS  - Codebits2007Lib.SAPO.JS  - Codebits2007
Lib.SAPO.JS - Codebits2007Claudio Gamboa
 
Scraping for fun and glory annotated
Scraping for fun and glory annotatedScraping for fun and glory annotated
Scraping for fun and glory annotateditalomaia
 
Invasão e correção em sites
Invasão e correção em sitesInvasão e correção em sites
Invasão e correção em sitesDaskonet Dasko
 
JavaScript agora é sério (TDC 2011)
JavaScript agora é sério (TDC 2011)JavaScript agora é sério (TDC 2011)
JavaScript agora é sério (TDC 2011)Luciano Ramalho
 
Scraping for fun and glory
Scraping for fun and gloryScraping for fun and glory
Scraping for fun and gloryitalomaia
 
tmn - Introdução ao JavaScript
tmn - Introdução ao JavaScripttmn - Introdução ao JavaScript
tmn - Introdução ao JavaScriptClaudio Gamboa
 

Mais procurados (20)

Tutorial Django + Python
Tutorial Django + PythonTutorial Django + Python
Tutorial Django + Python
 
Python na Web
Python na WebPython na Web
Python na Web
 
Python e Django
Python e DjangoPython e Django
Python e Django
 
Mini curso de django
Mini curso de djangoMini curso de django
Mini curso de django
 
Melhorando a Experiência do Usuário com JavaScript e jQuery
Melhorando a Experiência do Usuário com JavaScript e jQueryMelhorando a Experiência do Usuário com JavaScript e jQuery
Melhorando a Experiência do Usuário com JavaScript e jQuery
 
De Zero à Web com Python e Django
De Zero à Web com Python e DjangoDe Zero à Web com Python e Django
De Zero à Web com Python e Django
 
Html5 - O futuro da Web
Html5 - O futuro da WebHtml5 - O futuro da Web
Html5 - O futuro da Web
 
[FISL 16] PHP no Campo de Batalha: Segurança Avançada e Programação Defensiva...
[FISL 16] PHP no Campo de Batalha: Segurança Avançada e Programação Defensiva...[FISL 16] PHP no Campo de Batalha: Segurança Avançada e Programação Defensiva...
[FISL 16] PHP no Campo de Batalha: Segurança Avançada e Programação Defensiva...
 
Javascript aula 01 - visão geral
Javascript   aula 01 - visão geralJavascript   aula 01 - visão geral
Javascript aula 01 - visão geral
 
Mashups: Criando Valor na Web 2.0 (BandTec)
Mashups: Criando Valor na Web 2.0 (BandTec)Mashups: Criando Valor na Web 2.0 (BandTec)
Mashups: Criando Valor na Web 2.0 (BandTec)
 
Introdução ao Desenvolvimento WEB com Ruby on Rails
Introdução ao Desenvolvimento WEB com Ruby on RailsIntrodução ao Desenvolvimento WEB com Ruby on Rails
Introdução ao Desenvolvimento WEB com Ruby on Rails
 
Java script aula 02 - operadores
Java script   aula 02 - operadoresJava script   aula 02 - operadores
Java script aula 02 - operadores
 
Lib.SAPO.JS - Codebits2007
Lib.SAPO.JS  - Codebits2007Lib.SAPO.JS  - Codebits2007
Lib.SAPO.JS - Codebits2007
 
Scraping for fun and glory annotated
Scraping for fun and glory annotatedScraping for fun and glory annotated
Scraping for fun and glory annotated
 
Invasão e correção em sites
Invasão e correção em sitesInvasão e correção em sites
Invasão e correção em sites
 
JavaScript agora é sério (TDC 2011)
JavaScript agora é sério (TDC 2011)JavaScript agora é sério (TDC 2011)
JavaScript agora é sério (TDC 2011)
 
Doctrine for Dummies
Doctrine for DummiesDoctrine for Dummies
Doctrine for Dummies
 
Scraping for fun and glory
Scraping for fun and gloryScraping for fun and glory
Scraping for fun and glory
 
tmn - Introdução ao JavaScript
tmn - Introdução ao JavaScripttmn - Introdução ao JavaScript
tmn - Introdução ao JavaScript
 
Curso javascript básico
Curso javascript básicoCurso javascript básico
Curso javascript básico
 

Destaque

Daniela Bordini - 30mai14 1º Congresso A&R SUS
Daniela Bordini - 30mai14 1º Congresso A&R SUSDaniela Bordini - 30mai14 1º Congresso A&R SUS
Daniela Bordini - 30mai14 1º Congresso A&R SUSAutismo & Realidade
 
Atividade 2-2 anapaulasg
Atividade 2-2 anapaulasgAtividade 2-2 anapaulasg
Atividade 2-2 anapaulasgisapizani
 
Apresentação para blog
Apresentação para blogApresentação para blog
Apresentação para blog32028212
 
Cartazes explicativos 1
Cartazes explicativos 1Cartazes explicativos 1
Cartazes explicativos 1profnazira
 
Taller i herramientas de selección y degradado
Taller i   herramientas de selección y degradadoTaller i   herramientas de selección y degradado
Taller i herramientas de selección y degradadopalominoalvaro
 
3 mariaenel evangelio(1)
3 mariaenel evangelio(1)3 mariaenel evangelio(1)
3 mariaenel evangelio(1)Adriana Gotsis
 

Destaque (8)

Daniela Bordini - 30mai14 1º Congresso A&R SUS
Daniela Bordini - 30mai14 1º Congresso A&R SUSDaniela Bordini - 30mai14 1º Congresso A&R SUS
Daniela Bordini - 30mai14 1º Congresso A&R SUS
 
Pedrinho
PedrinhoPedrinho
Pedrinho
 
Atividade 2-2 anapaulasg
Atividade 2-2 anapaulasgAtividade 2-2 anapaulasg
Atividade 2-2 anapaulasg
 
Apresentação para blog
Apresentação para blogApresentação para blog
Apresentação para blog
 
Cartazes explicativos 1
Cartazes explicativos 1Cartazes explicativos 1
Cartazes explicativos 1
 
Taller i herramientas de selección y degradado
Taller i   herramientas de selección y degradadoTaller i   herramientas de selección y degradado
Taller i herramientas de selección y degradado
 
3 mariaenel evangelio(1)
3 mariaenel evangelio(1)3 mariaenel evangelio(1)
3 mariaenel evangelio(1)
 
Farmacologia
FarmacologiaFarmacologia
Farmacologia
 

Semelhante a Django Tem Ritmo

Web Scraping: aplicações nos negócios e na ciência
Web Scraping: aplicações nos negócios e na ciênciaWeb Scraping: aplicações nos negócios e na ciência
Web Scraping: aplicações nos negócios e na ciênciaSidney Roberto
 
Novidades do Django 1.2 e o que vem por ai
Novidades do Django 1.2 e o que vem por aiNovidades do Django 1.2 e o que vem por ai
Novidades do Django 1.2 e o que vem por aiMarcos Petry
 
Django Módulo Básico Parte I - Desenvolvimento de uma aplicação Web
Django Módulo Básico Parte I - Desenvolvimento de uma aplicação WebDjango Módulo Básico Parte I - Desenvolvimento de uma aplicação Web
Django Módulo Básico Parte I - Desenvolvimento de uma aplicação Webantonio sérgio nogueira
 
Aplicações rápidas para a Web com Django
Aplicações rápidas para a Web com DjangoAplicações rápidas para a Web com Django
Aplicações rápidas para a Web com DjangoFreedom DayMS
 
Desenvolvimento Agil Com Doctrine Orm
Desenvolvimento Agil Com Doctrine OrmDesenvolvimento Agil Com Doctrine Orm
Desenvolvimento Agil Com Doctrine OrmGuilherme Blanco
 
Pense no futuro: PHP com Zend Framework
Pense no futuro: PHP com Zend FrameworkPense no futuro: PHP com Zend Framework
Pense no futuro: PHP com Zend FrameworkFlávio Lisboa
 
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 FrameworkBruno Oliveira
 
LabMM3 - Aula teórica 04
LabMM3 - Aula teórica 04LabMM3 - Aula teórica 04
LabMM3 - Aula teórica 04Carlos Santos
 
O futuro do elephante: as promessas do php para 2019
O futuro do elephante: as promessas do php para 2019O futuro do elephante: as promessas do php para 2019
O futuro do elephante: as promessas do php para 2019Cassio Santos
 
Django - A sua cápsula de soluções web em python
Django - A sua cápsula de soluções web em pythonDjango - A sua cápsula de soluções web em python
Django - A sua cápsula de soluções web em pythonPaula Grangeiro
 
Junho 2016 - Django - A sua cápsula de soluções web em python
Junho 2016 - Django - A sua cápsula de soluções web em pythonJunho 2016 - Django - A sua cápsula de soluções web em python
Junho 2016 - Django - A sua cápsula de soluções web em pythonGrupo de Testes Carioca
 
O que todos os developers devem saber sobre seo
O que todos os developers devem saber sobre seoO que todos os developers devem saber sobre seo
O que todos os developers devem saber sobre seointrofini
 

Semelhante a Django Tem Ritmo (20)

Aplicacoes Rapidas Para Web Com Django
Aplicacoes Rapidas Para Web Com DjangoAplicacoes Rapidas Para Web Com Django
Aplicacoes Rapidas Para Web Com Django
 
Modern PHP
Modern PHPModern PHP
Modern PHP
 
Python 08
Python 08Python 08
Python 08
 
Web Scraping: aplicações nos negócios e na ciência
Web Scraping: aplicações nos negócios e na ciênciaWeb Scraping: aplicações nos negócios e na ciência
Web Scraping: aplicações nos negócios e na ciência
 
Novidades do Django 1.2 e o que vem por ai
Novidades do Django 1.2 e o que vem por aiNovidades do Django 1.2 e o que vem por ai
Novidades do Django 1.2 e o que vem por ai
 
Django Módulo Básico Parte I - Desenvolvimento de uma aplicação Web
Django Módulo Básico Parte I - Desenvolvimento de uma aplicação WebDjango Módulo Básico Parte I - Desenvolvimento de uma aplicação Web
Django Módulo Básico Parte I - Desenvolvimento de uma aplicação Web
 
Aplicações rápidas para a Web com Django
Aplicações rápidas para a Web com DjangoAplicações rápidas para a Web com Django
Aplicações rápidas para a Web com Django
 
Mashups: Criando Valor na Web 2.0
Mashups: Criando Valor na Web 2.0Mashups: Criando Valor na Web 2.0
Mashups: Criando Valor na Web 2.0
 
Desenvolvimento Agil Com Doctrine Orm
Desenvolvimento Agil Com Doctrine OrmDesenvolvimento Agil Com Doctrine Orm
Desenvolvimento Agil Com Doctrine Orm
 
Pense no futuro: PHP com Zend Framework
Pense no futuro: PHP com Zend FrameworkPense no futuro: PHP com Zend Framework
Pense no futuro: PHP com Zend Framework
 
Django Módulo Básico Parte II
Django Módulo Básico Parte IIDjango Módulo Básico Parte II
Django Módulo Básico Parte II
 
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
 
Django
DjangoDjango
Django
 
LabMM3 - Aula teórica 04
LabMM3 - Aula teórica 04LabMM3 - Aula teórica 04
LabMM3 - Aula teórica 04
 
O futuro do elephante: as promessas do php para 2019
O futuro do elephante: as promessas do php para 2019O futuro do elephante: as promessas do php para 2019
O futuro do elephante: as promessas do php para 2019
 
Carreira php
Carreira phpCarreira php
Carreira php
 
Django - A sua cápsula de soluções web em python
Django - A sua cápsula de soluções web em pythonDjango - A sua cápsula de soluções web em python
Django - A sua cápsula de soluções web em python
 
Junho 2016 - Django - A sua cápsula de soluções web em python
Junho 2016 - Django - A sua cápsula de soluções web em pythonJunho 2016 - Django - A sua cápsula de soluções web em python
Junho 2016 - Django - A sua cápsula de soluções web em python
 
O que todos os developers devem saber sobre seo
O que todos os developers devem saber sobre seoO que todos os developers devem saber sobre seo
O que todos os developers devem saber sobre seo
 
Doctrine for dummies
Doctrine for dummiesDoctrine for dummies
Doctrine for dummies
 

Último

MAPA - ADSIS - FUNDAMENTOS E ARQUITETURA DE COMPUTADORES - 512024.docx
MAPA - ADSIS - FUNDAMENTOS E ARQUITETURA DE COMPUTADORES  - 512024.docxMAPA - ADSIS - FUNDAMENTOS E ARQUITETURA DE COMPUTADORES  - 512024.docx
MAPA - ADSIS - FUNDAMENTOS E ARQUITETURA DE COMPUTADORES - 512024.docx2m Assessoria
 
ATIVIDADE 1 - MODELAGEM DE SOFTWARE – 512024.docx
ATIVIDADE 1 - MODELAGEM DE SOFTWARE – 512024.docxATIVIDADE 1 - MODELAGEM DE SOFTWARE – 512024.docx
ATIVIDADE 1 - MODELAGEM DE SOFTWARE – 512024.docxjosecarlos413721
 
ATIVIDADE 1 - CONTABILIDADE EMPRESARIAL - 512024.docx
ATIVIDADE 1 - CONTABILIDADE EMPRESARIAL - 512024.docxATIVIDADE 1 - CONTABILIDADE EMPRESARIAL - 512024.docx
ATIVIDADE 1 - CONTABILIDADE EMPRESARIAL - 512024.docx2m Assessoria
 
MAPA -INTRODUÇÃO À ENGENHARIA - 512024.docx
MAPA -INTRODUÇÃO À ENGENHARIA  - 512024.docxMAPA -INTRODUÇÃO À ENGENHARIA  - 512024.docx
MAPA -INTRODUÇÃO À ENGENHARIA - 512024.docx2m Assessoria
 
ATIVIDADE 1 - PESQUISA OPERACIONAL - 512024.docx
ATIVIDADE 1 - PESQUISA OPERACIONAL - 512024.docxATIVIDADE 1 - PESQUISA OPERACIONAL - 512024.docx
ATIVIDADE 1 - PESQUISA OPERACIONAL - 512024.docx2m Assessoria
 
ATIVIDADE 1 - TI - BOAS PRÁTICAS DE GOVERNANÇA EM TI - 512024.docx
ATIVIDADE 1 - TI - BOAS PRÁTICAS DE GOVERNANÇA EM TI - 512024.docxATIVIDADE 1 - TI - BOAS PRÁTICAS DE GOVERNANÇA EM TI - 512024.docx
ATIVIDADE 1 - TI - BOAS PRÁTICAS DE GOVERNANÇA EM TI - 512024.docxjosecarlos413721
 
ATIVIDADE 1 - PESQUISA OPERACIONAL - 512024.docx
ATIVIDADE 1 - PESQUISA OPERACIONAL - 512024.docxATIVIDADE 1 - PESQUISA OPERACIONAL - 512024.docx
ATIVIDADE 1 - PESQUISA OPERACIONAL - 512024.docx2m Assessoria
 
Power BI: A ferramenta da Microsoft que vem ganhando o mercado.
Power BI: A ferramenta da Microsoft que vem ganhando o mercado.Power BI: A ferramenta da Microsoft que vem ganhando o mercado.
Power BI: A ferramenta da Microsoft que vem ganhando o mercado.Daniel Mendes
 
Curso de Verão - Aula 03 - Introdução ao CI-CD e Infraestrutura como Código
Curso de Verão - Aula 03 - Introdução ao CI-CD e Infraestrutura como CódigoCurso de Verão - Aula 03 - Introdução ao CI-CD e Infraestrutura como Código
Curso de Verão - Aula 03 - Introdução ao CI-CD e Infraestrutura como CódigoGuilhermeJorgeAragod
 
MAPA -INTRODUÇÃO À ENGENHARIA - 512024.docx
MAPA -INTRODUÇÃO À ENGENHARIA  - 512024.docxMAPA -INTRODUÇÃO À ENGENHARIA  - 512024.docx
MAPA -INTRODUÇÃO À ENGENHARIA - 512024.docx2m Assessoria
 
ATIVIDADE 1 - ESTATÍSTICA E PROBABILIDADE - 512024.docx
ATIVIDADE 1 - ESTATÍSTICA E PROBABILIDADE - 512024.docxATIVIDADE 1 - ESTATÍSTICA E PROBABILIDADE - 512024.docx
ATIVIDADE 1 - ESTATÍSTICA E PROBABILIDADE - 512024.docx2m Assessoria
 
ATIVIDADE 1- MICROPROCESSADORES E MICROCONTROLADORES - 512024.docx
ATIVIDADE 1- MICROPROCESSADORES E MICROCONTROLADORES - 512024.docxATIVIDADE 1- MICROPROCESSADORES E MICROCONTROLADORES - 512024.docx
ATIVIDADE 1- MICROPROCESSADORES E MICROCONTROLADORES - 512024.docx2m Assessoria
 
ATIVIDADE 1 - TEORIA DAS ESTRUTURAS I - 512024.docx
ATIVIDADE 1 - TEORIA DAS ESTRUTURAS I - 512024.docxATIVIDADE 1 - TEORIA DAS ESTRUTURAS I - 512024.docx
ATIVIDADE 1 - TEORIA DAS ESTRUTURAS I - 512024.docx2m Assessoria
 
ATIVIDADE 1 - TI - BOAS PRÁTICAS DE GOVERNANÇA EM TI - 512024.docx
ATIVIDADE 1 - TI - BOAS PRÁTICAS DE GOVERNANÇA EM TI - 512024.docxATIVIDADE 1 - TI - BOAS PRÁTICAS DE GOVERNANÇA EM TI - 512024.docx
ATIVIDADE 1 - TI - BOAS PRÁTICAS DE GOVERNANÇA EM TI - 512024.docxjosecarlos413721
 
ATIVIDADE 1 - DESENHO TÉCNICO - 512024.docx
ATIVIDADE 1 - DESENHO TÉCNICO - 512024.docxATIVIDADE 1 - DESENHO TÉCNICO - 512024.docx
ATIVIDADE 1 - DESENHO TÉCNICO - 512024.docx2m Assessoria
 
ATIVIDADE 1- LÓGICA PARA COMPUTAÇÃO - 512024.docx
ATIVIDADE 1- LÓGICA PARA COMPUTAÇÃO - 512024.docxATIVIDADE 1- LÓGICA PARA COMPUTAÇÃO - 512024.docx
ATIVIDADE 1- LÓGICA PARA COMPUTAÇÃO - 512024.docx2m Assessoria
 
MAPA - INTRODUÇÃO À ENGENHARIA - 51-2024.docx
MAPA - INTRODUÇÃO À ENGENHARIA - 51-2024.docxMAPA - INTRODUÇÃO À ENGENHARIA - 51-2024.docx
MAPA - INTRODUÇÃO À ENGENHARIA - 51-2024.docxjosecarlos413721
 
ATIVIDADE 1 - ESTATÍSTICA E PROBABILIDADE - 512024.docx
ATIVIDADE 1 - ESTATÍSTICA E PROBABILIDADE - 512024.docxATIVIDADE 1 - ESTATÍSTICA E PROBABILIDADE - 512024.docx
ATIVIDADE 1 - ESTATÍSTICA E PROBABILIDADE - 512024.docxjosecarlos413721
 
ATIVIDADE 1 - ESTATÍSTICA E PROBABILIDADE - 512024.docx
ATIVIDADE 1 - ESTATÍSTICA E PROBABILIDADE - 512024.docxATIVIDADE 1 - ESTATÍSTICA E PROBABILIDADE - 512024.docx
ATIVIDADE 1 - ESTATÍSTICA E PROBABILIDADE - 512024.docx2m Assessoria
 
ATIVIDADE 1 - ADSIS - FUNDAMENTOS E ARQUITETURA DE COMPUTADORES - 512024.docx
ATIVIDADE 1 - ADSIS - FUNDAMENTOS E ARQUITETURA DE COMPUTADORES  - 512024.docxATIVIDADE 1 - ADSIS - FUNDAMENTOS E ARQUITETURA DE COMPUTADORES  - 512024.docx
ATIVIDADE 1 - ADSIS - FUNDAMENTOS E ARQUITETURA DE COMPUTADORES - 512024.docx2m Assessoria
 

Último (20)

MAPA - ADSIS - FUNDAMENTOS E ARQUITETURA DE COMPUTADORES - 512024.docx
MAPA - ADSIS - FUNDAMENTOS E ARQUITETURA DE COMPUTADORES  - 512024.docxMAPA - ADSIS - FUNDAMENTOS E ARQUITETURA DE COMPUTADORES  - 512024.docx
MAPA - ADSIS - FUNDAMENTOS E ARQUITETURA DE COMPUTADORES - 512024.docx
 
ATIVIDADE 1 - MODELAGEM DE SOFTWARE – 512024.docx
ATIVIDADE 1 - MODELAGEM DE SOFTWARE – 512024.docxATIVIDADE 1 - MODELAGEM DE SOFTWARE – 512024.docx
ATIVIDADE 1 - MODELAGEM DE SOFTWARE – 512024.docx
 
ATIVIDADE 1 - CONTABILIDADE EMPRESARIAL - 512024.docx
ATIVIDADE 1 - CONTABILIDADE EMPRESARIAL - 512024.docxATIVIDADE 1 - CONTABILIDADE EMPRESARIAL - 512024.docx
ATIVIDADE 1 - CONTABILIDADE EMPRESARIAL - 512024.docx
 
MAPA -INTRODUÇÃO À ENGENHARIA - 512024.docx
MAPA -INTRODUÇÃO À ENGENHARIA  - 512024.docxMAPA -INTRODUÇÃO À ENGENHARIA  - 512024.docx
MAPA -INTRODUÇÃO À ENGENHARIA - 512024.docx
 
ATIVIDADE 1 - PESQUISA OPERACIONAL - 512024.docx
ATIVIDADE 1 - PESQUISA OPERACIONAL - 512024.docxATIVIDADE 1 - PESQUISA OPERACIONAL - 512024.docx
ATIVIDADE 1 - PESQUISA OPERACIONAL - 512024.docx
 
ATIVIDADE 1 - TI - BOAS PRÁTICAS DE GOVERNANÇA EM TI - 512024.docx
ATIVIDADE 1 - TI - BOAS PRÁTICAS DE GOVERNANÇA EM TI - 512024.docxATIVIDADE 1 - TI - BOAS PRÁTICAS DE GOVERNANÇA EM TI - 512024.docx
ATIVIDADE 1 - TI - BOAS PRÁTICAS DE GOVERNANÇA EM TI - 512024.docx
 
ATIVIDADE 1 - PESQUISA OPERACIONAL - 512024.docx
ATIVIDADE 1 - PESQUISA OPERACIONAL - 512024.docxATIVIDADE 1 - PESQUISA OPERACIONAL - 512024.docx
ATIVIDADE 1 - PESQUISA OPERACIONAL - 512024.docx
 
Power BI: A ferramenta da Microsoft que vem ganhando o mercado.
Power BI: A ferramenta da Microsoft que vem ganhando o mercado.Power BI: A ferramenta da Microsoft que vem ganhando o mercado.
Power BI: A ferramenta da Microsoft que vem ganhando o mercado.
 
Curso de Verão - Aula 03 - Introdução ao CI-CD e Infraestrutura como Código
Curso de Verão - Aula 03 - Introdução ao CI-CD e Infraestrutura como CódigoCurso de Verão - Aula 03 - Introdução ao CI-CD e Infraestrutura como Código
Curso de Verão - Aula 03 - Introdução ao CI-CD e Infraestrutura como Código
 
MAPA -INTRODUÇÃO À ENGENHARIA - 512024.docx
MAPA -INTRODUÇÃO À ENGENHARIA  - 512024.docxMAPA -INTRODUÇÃO À ENGENHARIA  - 512024.docx
MAPA -INTRODUÇÃO À ENGENHARIA - 512024.docx
 
ATIVIDADE 1 - ESTATÍSTICA E PROBABILIDADE - 512024.docx
ATIVIDADE 1 - ESTATÍSTICA E PROBABILIDADE - 512024.docxATIVIDADE 1 - ESTATÍSTICA E PROBABILIDADE - 512024.docx
ATIVIDADE 1 - ESTATÍSTICA E PROBABILIDADE - 512024.docx
 
ATIVIDADE 1- MICROPROCESSADORES E MICROCONTROLADORES - 512024.docx
ATIVIDADE 1- MICROPROCESSADORES E MICROCONTROLADORES - 512024.docxATIVIDADE 1- MICROPROCESSADORES E MICROCONTROLADORES - 512024.docx
ATIVIDADE 1- MICROPROCESSADORES E MICROCONTROLADORES - 512024.docx
 
ATIVIDADE 1 - TEORIA DAS ESTRUTURAS I - 512024.docx
ATIVIDADE 1 - TEORIA DAS ESTRUTURAS I - 512024.docxATIVIDADE 1 - TEORIA DAS ESTRUTURAS I - 512024.docx
ATIVIDADE 1 - TEORIA DAS ESTRUTURAS I - 512024.docx
 
ATIVIDADE 1 - TI - BOAS PRÁTICAS DE GOVERNANÇA EM TI - 512024.docx
ATIVIDADE 1 - TI - BOAS PRÁTICAS DE GOVERNANÇA EM TI - 512024.docxATIVIDADE 1 - TI - BOAS PRÁTICAS DE GOVERNANÇA EM TI - 512024.docx
ATIVIDADE 1 - TI - BOAS PRÁTICAS DE GOVERNANÇA EM TI - 512024.docx
 
ATIVIDADE 1 - DESENHO TÉCNICO - 512024.docx
ATIVIDADE 1 - DESENHO TÉCNICO - 512024.docxATIVIDADE 1 - DESENHO TÉCNICO - 512024.docx
ATIVIDADE 1 - DESENHO TÉCNICO - 512024.docx
 
ATIVIDADE 1- LÓGICA PARA COMPUTAÇÃO - 512024.docx
ATIVIDADE 1- LÓGICA PARA COMPUTAÇÃO - 512024.docxATIVIDADE 1- LÓGICA PARA COMPUTAÇÃO - 512024.docx
ATIVIDADE 1- LÓGICA PARA COMPUTAÇÃO - 512024.docx
 
MAPA - INTRODUÇÃO À ENGENHARIA - 51-2024.docx
MAPA - INTRODUÇÃO À ENGENHARIA - 51-2024.docxMAPA - INTRODUÇÃO À ENGENHARIA - 51-2024.docx
MAPA - INTRODUÇÃO À ENGENHARIA - 51-2024.docx
 
ATIVIDADE 1 - ESTATÍSTICA E PROBABILIDADE - 512024.docx
ATIVIDADE 1 - ESTATÍSTICA E PROBABILIDADE - 512024.docxATIVIDADE 1 - ESTATÍSTICA E PROBABILIDADE - 512024.docx
ATIVIDADE 1 - ESTATÍSTICA E PROBABILIDADE - 512024.docx
 
ATIVIDADE 1 - ESTATÍSTICA E PROBABILIDADE - 512024.docx
ATIVIDADE 1 - ESTATÍSTICA E PROBABILIDADE - 512024.docxATIVIDADE 1 - ESTATÍSTICA E PROBABILIDADE - 512024.docx
ATIVIDADE 1 - ESTATÍSTICA E PROBABILIDADE - 512024.docx
 
ATIVIDADE 1 - ADSIS - FUNDAMENTOS E ARQUITETURA DE COMPUTADORES - 512024.docx
ATIVIDADE 1 - ADSIS - FUNDAMENTOS E ARQUITETURA DE COMPUTADORES  - 512024.docxATIVIDADE 1 - ADSIS - FUNDAMENTOS E ARQUITETURA DE COMPUTADORES  - 512024.docx
ATIVIDADE 1 - ADSIS - FUNDAMENTOS E ARQUITETURA DE COMPUTADORES - 512024.docx
 

Django Tem Ritmo

  • 1. DJANGO TEM RITMO! Palestrante: Italo MC Maia Duração: 50min Blog: http://tiny.cc/italo_blog Site: http://tiny.cc/italomaia http://www.python.org.br http://www.pugce.org
  • 2. Frameworks Web Frameworks Frameworks Python MyFaces - Java TurboGears RubyOnRails - Ruby Web.Py Catalyst - Perl Web2Py Kepler - Lua Pylons CakePHP - PHP Karrigell http://www.python.org.br http://www.pugce.org
  • 3. Django! Desenvolvido para “Lawrence Journal-World” http://www.lawrence.com/ - Princípios - ORM DRY KISS MTV (MVC) Rápido Escalável Poucas dependências http://www.python.org.br http://www.pugce.org
  • 4. Melhores Práticas! Baixo acoplamento Lógica de domínio Urls/Visão/Modelo auto-contida Explícito é melhor que Modelo implícito Poliglota Menos mágica! Internacionalização Enxuto Ajax e companhia Só o essencial! XML, (X)HTML, JSON Produtivo Extensível - Código + Produto TUDO! http://www.python.org.br http://www.pugce.org
  • 5. models.py ORM padrão do Django from django.models import * Solução InHouse # define a classe/tabela no banco class Page(models.Model): Lazy Queries name=CharField(max_length=100) slug=SlugField(primary_key=True) ActiveRecord text=models.TextField() 1to1, 1toM, MtoN # cria uma página no banco Page.objects.create(name='Pugce', slug='pugce', Independe do Banco text='Amo tudo isso!') pg = Page.objects.get(pk='pugce') # busca por PK Sinais query = Page.objects.all() # todas as paginas! # paginas que o nome comeca com 'P' Page.objects.filter(name__startswith='P') http://www.python.org.br http://www.pugce.org
  • 6. urls.py Mapeamento de Requisições from django.conf.urls.defaults import * from django.contrib import admin from cms import views # acha modelos p/ o django-admin DRY admin.autodiscover() Baixo acoplamento # (<regex>, view.metodo ou include(modulo_url)) urlpatterns = patterns('', Exp. Regulares (r'^admin/', include(admin.site.urls)), (r'^accounts/(?P<username>[w_]+)/', RÁPIDO!! include('pugce.accounts.urls')), url(r'^(?P<slug>[0-9A-Za-z-_.//]+)/$', views.page, name='cms-page') ) http://www.python.org.br http://www.pugce.org
  • 7. forms.py Geração de Formulários - Gerados - - Validação - A partir do modelo Automática Manualmente Personalizada from django import forms from . import models - Características - # form a partir de um modelo Sem HTML class PageForm(forms.ModelForm): class Meta: model=models.Page Mapeamento auto. # testando o formulário page=models.Page.objects.get(pk='pugce') Tratamento de erros frm=PageForm({“name”:”huguinho”}, instance=page) if frm.is_valid(): frm.save() else: print frm.errors http://www.python.org.br http://www.pugce.org
  • 8. views.py Lógica da Aplicação from django.shortcuts import - Características - render_to_response as rp from . import models Simples Valida Acesso # primeiro argumento deve ser a requisicao def page(request, slug): Responde Requisições # slug: identificador de uma Page pg = models.Page.objects.get(pk=slug) Acessa o Modelo rp_dict = pg.__dict__ Independe do Template if request.is_ajax(): # requisicao ajax? Ajax Transparente return rp('pg.json', rp_dict, mimetype='application/json') else: return rp('pg.html', rp_dict) http://www.python.org.br http://www.pugce.org
  • 9. Templates! Mostrando Resultado! Tags Flexível {% tagname %} Funciona com qualquer Variáveis arquivo texto, seja XML, HTML, XHTML, TXT... {{ var }} Filtros Melhores Práticas var|filtro Separa Lógica e Apresentação http://www.python.org.br http://www.pugce.org
  • 10. base.html http://www.python.org.br http://www.pugce.org
  • 11. page.html http://www.python.org.br http://www.pugce.org
  • 12. Página montada HTML exibindo Page(pk='pugce') http://www.python.org.br http://www.pugce.org
  • 13. contribs.* Admin Csrf Humanize Contenttype Gis Redirects Formtools Markup Syndication Localflavor Sites Comments Sitemaps Auth Flatpages Admindocs Databrowse Sessions Webdesign http://www.python.org.br http://www.pugce.org
  • 14. contrib.admin Interface Administrativa Acesso ao banco Crud Automatizado Logs Permissões Personalizável fonte:djangobook.zinpep http://www.python.org.br http://www.pugce.org
  • 15. Agradecimento Agradeço a presença de todos e aos meus colegas coordenadores por serem grandes pessoas e profissionais! Mais informações em: http://djangoproject.com/ http://www.djangobrasil.org/ http://www.python.org.br http://www.pugce.org