SlideShare uma empresa Scribd logo
1 de 45
Baixar para ler offline
O framework web para perfeccionistas com prazos
Django facilita o desenvolvimento de aplicações web com mais
qualidade e menos código


                                  Alexandre D. Rogoski
                                             Exata T.I.
                                           alexandre@exatati.com.br
Quem sou eu?


●
    Desenvolvedor Python;
●
    Administrador de Sistemas/Redes;
●
    Embaixador da Comunidade openSUSE;
●   Contribuidor openSUSE/Novell.
Python


●
    Linguagem de programação de alto-nível;
●
    Interpretada, interativa e orientada a objetos;
●
    Tipagem forte e dinâmica;
●   Identação obrigatória = código legível.
O que é Django?

●   “Django é um framework Python de alto-nível que
    estimula o desenvolvimento rápido e limpo, com
    design objetivo e realista.”
●
    Um framework Web de alto-nível é um software
    que facilita e torna menos doloroso o processo de
    construção de sites dinâmicos. Abstrai problemas
    comuns do desenvolvimento Web e oferece
    atalhos para tarefas de progração frequentes;
●   DRY – Don't Repeat Yourself.
“... um framework Python de alto-nível ...”

    Um framework deve abordar questões comuns como:
●   Prover um método de mapeamento entre as URLs solicitadas e o
    código que manipula as requisições;
●   Tornar mais fácil a exibição, validação e reexibição de formulários
    HTML;
●   Converter a entrada do usuário em tipos de dados que podem ser
    manipulados convenientemente;
●   Separar o conteúdo da apresentação através de um sistema de
    templates;
●   Integrar-se com camadas de armazenamento;
●   Permitir que você trabalhe de forma mais produtiva, em um nível
    maior de abstração.
“... que estimula o desenvolvimento rápido ...”


    Independentemente de quantos poderosos recursos ele tenha,
    um framework Web é inútil se não lhe poupar tempo.
●   A produtividade do Django é em grande parte graças aos
    benefícios do Python:
    ●   Linguagem interpretada;
    ●   Tipada dinamicamente;
    ●   Concisa mas expressiva;
    ●   Introspecção poderosa e meta-programação.
●   Django aproveita as vantagens proporcionadas pelo Python para
    acelerar o desenvolvimento de aplicações web.
“... e limpo, com design objetivo e realista.”




    Acima de tudo, Django tenta:
●
    Tornar mais fácil fazer as coisas do jeito “certo”;
●
    Incentivar fraco acoplamento.
História

●   Batizado com o nome de “Django Reinhardt”;
●
    Desenvolvido por Adrian Holovaty e Jacob
    Kaplan-Moss no World Online News;
●   Declarado OpenSource em 2005;
●
    Primeira versão lançada em 3 de setembro de
    2008;
●   Sua pronúncia é JANG-oh. Com D mudo.
Abordagem Não-Tão-Limpa
<html>
<head><title>Meus Amiguinhos</title></head>
<body>
<h1>Meus Amigos</h1>
<ul>
<?php
$connection = @mysql_connect("localhost", "my_username", 
"my_pass");
mysql_select_db("my_database");
$people = mysql_query("SELECT name, age FROM friends");
while ( $person = mysql_fetch_array($people, MYSQL_ASSOC) ) {
?>
<li>
<?php echo $person['name'] ?> tem <?php echo $person['age'] ?> 
anos de idade.
</li>
<?php } ?>
</ul>
</body>
</html>
Abordagem Não-Tão-Limpa

●   Quais são os problemas dessa abordagem?
    ●
        A apresentação está vinculada ao código;
    ●   O código do banco de dados está vinculado à lógica
        de negócios;
    ●
        A URL é acoplada ao código (determina o nome do
        arquivo a ser exibido;
    ●   Parâmetros do banco de dados hard-coded;
    ●   Nível muito-baixo. Para aplicações de grande porte
        a complexidade escalona-se surpreendentemente.
Arquitetura do Framework
●   Django é um framework MVC, interpretado de forma livre.


    Componentes Principais:
●   Core (Framework HTTP);
●   Mapeador Objeto-Relacional (ORM);
●   Template Engine;


    Lembre-se, os componentes do Django são fracamente
    acoplados, de modo que cada peça pode ser usada
    separadamente ou substituída por um equivalente de
    terceiros.
Arquitetura do Framework: Core
O Core proporciona:
●   Mecanismo padronizado para tratamento de
    requisições HTTP;
●
    Máquina de mapeamento URL;
●   Integração do servidor de Web com múltiplos
    backends (Apache + mod_python, FastCGI, ...);


    Aplicativos Web construídos com Django encaixam-
    se nesse componente para lidar com solicitações
    HTTP.
Projetos e Aplicações
Como os sitemas em Django são organizados?
●   Cada sistema é composto por uma ou mais
    aplicações;
●   Aplicações são agrupadas em um “projeto”, embora
    não seja obrigatório. Projetos são uma forma de
    representação amigável;
●   Cada site usa um único arquivo de configurações,
    normalmente chamado settings.py, que diz ao
    Django que aplicativos usar e como usá-los;
●   O arquivo de configuração também tem uma grande
    variedade de configurações do sistema.
O que é uma aplicação?

●   Possui views para lidar com solicitações HTTP;
●
    URLconf's para mapear solicitações de URL em
    views;
●   Modelos para fácil integração ao banco de
    dados;
●   Templates para simplificar geração de código
    HTML e porporcionar isolamento entre
    apresentação e lógica de negócios.
django-admin.py

Django fornece uma ferramenta de linha de comando
simples que, entre outras coisas, torna mais fácil
criar os esqueletos de projeto e aplicação.


Por exemplo, para criar um novo projeto:
$ django­admin.py startproject exemplo
$ cd exemplo && ls
__init__.py  manage.py  settings.py  
urls.py
manage.py

    manage.py é um utilitário que vem com o
    esqueleto de projeto padrão.
●
    Envolve grande parte da mesma
    funcionalidade do django-admin.py, mas
    assume que você está interessado no projeto
    do diretório atual.
●
    Este é apenas um atalho para o projeto ao
    qual pretende trabalhar, para não ter que ser
    especificado em cada comando.
Primeiros Passos


    Django torna mais fácil ter um servidor de
    desenvolvimento iniciado e executando.
●
    Simples de usar, zero de configuração;
●
    Thread única, processo único;
●
    Fornece relatório de erro verbose (e muito!).
●
    Não é para uso em produção!
Views
    O que são views?
●   Views são simplesmente funções Python;
●   Views têm pelo menos um argumento, um objeto HttpRequest;
●   Views devem ou retornar um objeto HttpResponse ou uma exceção
    apropriada.

    import random
    from django.http import HttpResponse

    def random_number(request):
        x = random.randint(0, 999)
        html = '<html><body><p>Seu número da sorte é: 
    %u</p></body></html>' % x
        return HttpResponse(html)
URLconf's
●   Uma vez definida a view só precisamos dizer
    ao Django onde ela vive no espaço URL;
●
    Fazemos isso com um URLconf, geralmente
    chamado urls.py.

    from django.conf.urls.defaults import *

    urlpatterns = patterns('',
        (r'^random_number/$',                
    'randomness.views.random_number'),
    )
Como URLConf's funcionam?

    Django URL dispatcher é responsável por ler o URLconf e
    fazer algo de útil com ele:
●   Uma URLconf são pares de expressão regular com views;
●   Quando uma solicitação é recebida, o URL dispatcher tenta
    corresponder cada expressão regular com a URL solicitada;
●   As expressões regulares são julgados em ordem, de cima
    para baixo;
●   Quando é encontrada uma regex que corresponde à URL
    solicitada, essa view é usada para processar a requisição.
Exemplo de URLConf


Uma requisição para /eventos/2006/:

urlpatterns = patterns('',
 ('^$', views.homepage),
 ('^/sobre/$', views.sobre),
 ('^/eventos/$', views.cal_archive),
 ('^/eventos/(200d)/$', views.cal_year),
 ('^/eventos/(200d)/(dd)/$', 
  views.cal_month),
)
Mais sobre URLconf's

    Algumas coisas mais sobre URLconf:
●   Normalmente, cada aplicação contendo views possui
    sua URLconf (urls.py), e uma entrada no URLconf do
    projeto;
●   URLconf's por aplicação podem ser usadas para manter
    as aplicações auto-contidas, então o URLconf do
    projeto pode incluir cada uma das URLconf's das
    aplicações;
●   Mas apenas a URLconf do projeto é realmente
    necessária, ela pode mapear qualquer URL a uma view.
Primeira Configuração

    settings.py:
    ROOT_URLCONF = 'exemplo.urls'


●
    Para alguns sistemas Django o arquivo de
    configurações será muito extenso. Mas para
    este exemplo, entretanto, é tão pequeno que
    requer apenas o ROOT_URLCONF.
Primeiro Código Web

urls.py:

from django.conf.urls.defaults import *

urlpatterns = patterns('',
  (r'^random_number/$', 'randomness.views.random_number'),
)

views.py:

import random
from django.http import HttpResponse

def random_number(request):
    x = random.randint(0, 999)
    html = '<html><body><p>Seu número da sorte é: 
%u</p></body></html>' % x
    return HttpResponse(html)
Django ORM

    No mundo Django, os modelos são a fonte
    oficial de todas as informações relacionadas
    com a arquitetura de banco de dados e de
    representação.
●
    Modelos reúnem:
    ●
        Definição do esquema do banco de dados;
    ●   Definição programática dos objetos (seu
        comportamento).
Modelos


●   Definição explícita no código, sem
    introspecção em tempo de execução:
    ●
        Desempenho;
    ●   Metadados Ricos;
    ●   Agnóstico ao Banco de Dados.
Mais em Modelos
    O modelo para os modelos:
●
    A classe model representa uma tabela do
    banco de dados;
●
    Cada instância de classe representa uma linha
    na tabela;
●   Cada classe do modelo automaticamente
    recebe alguns atributos especiais para
    fornecer funcionalidade de banco de dados,
    como consultas.
Exemplo de Modelos


from django.db import models

class Author(models.Model):
    firstname = models.CharField(max_length = 256)
    lastname = models.CharField(max_length = 256)

class Book(models.Model):
    title = models.CharField(max_length = 256)
    author = models.ForeignKey(Author)
Inicializando o Banco de Dados
    O banco de dados é automaticamente
    inicializado com o comando "manager.py
    syncdb".
●   As tabelas necessárias para todos os
    aplicativos instalados são criadas;
●   Os dados iniciais são inseridos, se os
    aplicativos possuirem algum;
●
    Hooks específicos dos aplicativos são
    inicializados.
Concretizando os Modelos



class Author(models.Model):
    firstname = models.CharField(max_length = 256, blank = False)
    lastname = models.CharField(max_length = 256, blank = False)

    class Meta:
        unique_together = (
          ('firstname', 'lastname'),
        )

    def __str__(self):
        return '%s %s' % (self.firstname, self.lastname)
Concretizando os Modelos


class Book(models.Model):
    title = models.CharField(max_length = 256, blank = False)
    author = models.ForeignKey(Author)

    class Meta:
        unique_together = (
          ('title', 'author'),
        )

    def __str__(self):
        return '%s by %s' % (self.title, str(self.author))
O Admin Mumbo Jumbo




●   Django Admin Site!!!
O Sistema



Temos modelos, agora precisamos de views,
URLconf e alguns templates.
Aprendendo sobre templates rapidamente...
Django Templates

A engine de templates Django é similar em
algumas maneiras à outras engines (e.x.: Smarty):
●   Uma linguagem simples para aplicar lógica de exibição
    à marcação.
●   É extensível.
●   Ele pode ser usado para mais do que apenas HTML: e-
    mails, as exportações CSV, JSON, XML, ...
●   Solução “Out-of-the-box”, não tem habilidade para
    afetar o estado da aplicação, escrever no banco de
    dados, chamar funções Python diretamente, ...
Template Simples


<html>
  <head><title>{{ book }}</title></head>
  <body>
    <h1>{{ book }}</h1>
    <p>Este é um livro:</p>
    <table>
     <tr><th>Título:</th><td>{{ book.title }}</td></tr>
      <tr><th>Autor:</th><td>{{ book.author }}</td></tr>
    </table>
  </body>
</html>
Como os templates funcionam?

Princípios de renderização de templates:
●   Código Python (normalmente a função da view) o
    faz processamento;
●
    O modelo é encontrado pelo nome e carregado;
●   Um Contexto é criado; isto é uma coleção de
    objetos e variáveis que serão representadas no
    template;
●   O Contexto é renderizado no template com uma
    única chamada de função.
Nosso Sistema




Agora podemos concluir nosso sistema.
As Views
views.py:
from django.http import HttpResponse, Http404
from django.template import loader, Context

from mybooks.books import models

def book_list(request):
    books = models.Book.objects.all()
    c = Context({ 'books': books })
    t = loader.get_template('book_list.html')
    return HttpResponse(t.render(c))

def book_detail(request, id):
    try:
        book = models.Book.objects.get(id = id)
    except models.Book.DoesNotExist:
        raise Http404

    c = Context({ 'book': book })
    t = loader.get_template('book_detail.html')
    return HttpResponse(t.render(c))
O URLConf

urls.py:
from django.conf.urls.defaults import *

urlpatterns = patterns('',
  (r'^books/$', 
'mybooks.books.views.book_list'),
  (r'^books/(?P<id>[0­9]+)/$', 
'mybooks.books.views.book_detail'),
  (r'^admin/', 
include('django.contrib.admin.urls')),
)
Os Templates



base.html:
<html>
  <head>
    <title>{% block title %}Título{% endblock %}</title>
  </head>
  <body>{% block body %}Corpo{% endblock %}</body>
</html>
Os Templates

book_list.html:
{% extends "base.html" %}
{% block title %}Meus Livros{% endblock %}
{% block body %}
  {% if books %}
    <p>Estes são alguns dos livros da minha coleção:</p>
    <ul>
    {% for book in books %}
      <li><a href="{{ book.id }}">{{ book }}</a></li>
    {% endfor %}
    </ul>
  {% else %}
    <p>Eu não tenho uma coleção de livros!</p>
  {% endif %}
{% endblock %}
Os Templates
book_detail.html:
{% extends "base.html" %}
{% block title %}{{ book }}{% endblock %}
{% block body %}
<p>Este é um dos meus livros:</p>
<table>
  <tr>
    <th>Título:</th>
    <td>{{ book.title }}</td>
  </tr>
  <tr>
    <th>Autor:</th>
    <td>{{ book.author }}</td>
  </tr>
</table>
{% endblock %}
E Mais
Isto foi apenas o básico, o Django cria muito mais
recursos impressionantes que realmente
maximizam sua produtividade:
●   Processamento de formulários, validação, Ajax, Unit
    Testing, sessões, cookies, CSRF, ...;
●   Visões genéricas: O sistema poderia ter sido criado sem
    escrever uma única visão (e código HTML);
●   Conectando aplicativos plugáveis de terceiros você
    consegue recursos sofisticados de graça!
●   Django está em melhoria contínua e o conjunto de
    recursos continua a crescer.
Outros Recursos
●   http://www.djangoproject.com
●   http://docs.djangoproject.com
●   http://www.djangobrasil.org
●   http://www.aprendendodjango.com.br
●   http://www.djangobook.com
●   http://djangoadvent.com
●   http://www.python.org
●   IRC: #django e #django-br
●   ML: django-users@googlegroups.com django-
    brasil@googlegroups.com
Perguntas?




●   Obrigado a todos!

Mais conteúdo relacionado

Mais procurados

Treinamento Básico de Django
Treinamento Básico de DjangoTreinamento Básico de Django
Treinamento Básico de DjangoLeandro Zanuz
 
Fazendo Um Elefante Passar Debaixo da Porta - PGCon-BR
Fazendo Um Elefante Passar Debaixo da Porta - PGCon-BRFazendo Um Elefante Passar Debaixo da Porta - PGCon-BR
Fazendo Um Elefante Passar Debaixo da Porta - PGCon-BRFabio Telles Rodriguez
 
Implementando enterprise patterns com PHP
Implementando enterprise patterns com PHPImplementando enterprise patterns com PHP
Implementando enterprise patterns com PHPPablo Dall'Oglio
 
Django: desenvolvendo aplicações web de maneira simples e rápida!
Django: desenvolvendo aplicações web de maneira simples e rápida!Django: desenvolvendo aplicações web de maneira simples e rápida!
Django: desenvolvendo aplicações web de maneira simples e rápida!Felipe Queiroz
 
Engenharia rever sa mentebinaria
Engenharia rever sa   mentebinariaEngenharia rever sa   mentebinaria
Engenharia rever sa mentebinariaPatrese Renan
 
Introdução ao framework CodeIgniter
Introdução ao framework CodeIgniterIntrodução ao framework CodeIgniter
Introdução ao framework CodeIgniterAnderson Gonçalves
 
NoSQL com Zend Framework 2
NoSQL com Zend Framework 2NoSQL com Zend Framework 2
NoSQL com Zend Framework 2Flávio Lisboa
 
Full Text Search - Busca Textual no PostgreSQL
Full Text Search -  Busca Textual no PostgreSQLFull Text Search -  Busca Textual no PostgreSQL
Full Text Search - Busca Textual no PostgreSQLJuliano Atanazio
 
Usando Git na Unity - Gaming For All 2021
Usando Git na Unity - Gaming For All 2021Usando Git na Unity - Gaming For All 2021
Usando Git na Unity - Gaming For All 2021Erik Cruz
 
Tutorial Django + Python
Tutorial Django + PythonTutorial Django + Python
Tutorial Django + PythonMateus Padua
 
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
 
Começando com Zend Framework 2
Começando com Zend Framework 2Começando com Zend Framework 2
Começando com Zend Framework 2Cezar Souza
 
Construindo portlets para IBM WebSphere Portal – Parte 1
Construindo portlets para IBM WebSphere Portal – Parte 1Construindo portlets para IBM WebSphere Portal – Parte 1
Construindo portlets para IBM WebSphere Portal – Parte 1rodrigoareis
 
ZF2 básico : Desenvolvendo um Blog com o Zend Framework 2
ZF2 básico : Desenvolvendo um Blog com o Zend Framework 2ZF2 básico : Desenvolvendo um Blog com o Zend Framework 2
ZF2 básico : Desenvolvendo um Blog com o Zend Framework 2Cezar Souza
 
Desenvolvimento web: PHP orientado a objetos
Desenvolvimento web: PHP orientado a objetosDesenvolvimento web: PHP orientado a objetos
Desenvolvimento web: PHP orientado a objetosLucas Vegi
 
Como o Cucumber Funciona
Como o Cucumber FuncionaComo o Cucumber Funciona
Como o Cucumber FuncionaLaís Berlatto
 
IBM Web Content Management - Melhores práticas
IBM Web Content Management - Melhores práticasIBM Web Content Management - Melhores práticas
IBM Web Content Management - Melhores práticasrodrigoareis
 

Mais procurados (20)

Treinamento Básico de Django
Treinamento Básico de DjangoTreinamento Básico de Django
Treinamento Básico de Django
 
Frameworks PHP
Frameworks PHPFrameworks PHP
Frameworks PHP
 
Fazendo Um Elefante Passar Debaixo da Porta - PGCon-BR
Fazendo Um Elefante Passar Debaixo da Porta - PGCon-BRFazendo Um Elefante Passar Debaixo da Porta - PGCon-BR
Fazendo Um Elefante Passar Debaixo da Porta - PGCon-BR
 
Mean Stack
Mean StackMean Stack
Mean Stack
 
Implementando enterprise patterns com PHP
Implementando enterprise patterns com PHPImplementando enterprise patterns com PHP
Implementando enterprise patterns com PHP
 
Django: desenvolvendo aplicações web de maneira simples e rápida!
Django: desenvolvendo aplicações web de maneira simples e rápida!Django: desenvolvendo aplicações web de maneira simples e rápida!
Django: desenvolvendo aplicações web de maneira simples e rápida!
 
Engenharia rever sa mentebinaria
Engenharia rever sa   mentebinariaEngenharia rever sa   mentebinaria
Engenharia rever sa mentebinaria
 
Introdução ao framework CodeIgniter
Introdução ao framework CodeIgniterIntrodução ao framework CodeIgniter
Introdução ao framework CodeIgniter
 
NoSQL com Zend Framework 2
NoSQL com Zend Framework 2NoSQL com Zend Framework 2
NoSQL com Zend Framework 2
 
Full Text Search - Busca Textual no PostgreSQL
Full Text Search -  Busca Textual no PostgreSQLFull Text Search -  Busca Textual no PostgreSQL
Full Text Search - Busca Textual no PostgreSQL
 
Usando Git na Unity - Gaming For All 2021
Usando Git na Unity - Gaming For All 2021Usando Git na Unity - Gaming For All 2021
Usando Git na Unity - Gaming For All 2021
 
Tutorial Django + Python
Tutorial Django + PythonTutorial Django + Python
Tutorial Django + Python
 
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
 
Começando com Zend Framework 2
Começando com Zend Framework 2Começando com Zend Framework 2
Começando com Zend Framework 2
 
Construindo portlets para IBM WebSphere Portal – Parte 1
Construindo portlets para IBM WebSphere Portal – Parte 1Construindo portlets para IBM WebSphere Portal – Parte 1
Construindo portlets para IBM WebSphere Portal – Parte 1
 
ZF2 básico : Desenvolvendo um Blog com o Zend Framework 2
ZF2 básico : Desenvolvendo um Blog com o Zend Framework 2ZF2 básico : Desenvolvendo um Blog com o Zend Framework 2
ZF2 básico : Desenvolvendo um Blog com o Zend Framework 2
 
Desenvolvimento web: PHP orientado a objetos
Desenvolvimento web: PHP orientado a objetosDesenvolvimento web: PHP orientado a objetos
Desenvolvimento web: PHP orientado a objetos
 
Conhecendo o Django
Conhecendo o DjangoConhecendo o Django
Conhecendo o Django
 
Como o Cucumber Funciona
Como o Cucumber FuncionaComo o Cucumber Funciona
Como o Cucumber Funciona
 
IBM Web Content Management - Melhores práticas
IBM Web Content Management - Melhores práticasIBM Web Content Management - Melhores práticas
IBM Web Content Management - Melhores práticas
 

Semelhante a Django

F R A M E W O R K D J A N G O
F R A M E W O R K  D J A N G OF R A M E W O R K  D J A N G O
F R A M E W O R K D J A N G Ofabio.thomaz
 
Django - Desenvolvimento web ágil com Python
Django - Desenvolvimento web ágil com PythonDjango - Desenvolvimento web ágil com Python
Django - Desenvolvimento web ágil com PythonIgor Sobreira
 
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
 
Palestra Zend Framework na Campus Party 2011
Palestra Zend Framework na Campus Party 2011Palestra Zend Framework na Campus Party 2011
Palestra Zend Framework na Campus Party 2011Flávio Lisboa
 
Desenvolvimento web com python e django
Desenvolvimento web com python e djangoDesenvolvimento web com python e django
Desenvolvimento web com python e djangoIgor Sobreira
 
Aplicações Web com Python e Google App Engine
Aplicações Web com Python e Google App EngineAplicações Web com Python e Google App Engine
Aplicações Web com Python e Google App EngineRodrigo Amaral
 
Introdução à Programação Web com Angular
Introdução à Programação Web com AngularIntrodução à Programação Web com Angular
Introdução à Programação Web com AngularElmano Cavalcanti
 
Python e Django
Python e DjangoPython e Django
Python e Djangopugpe
 
Qualidade em projetos PHP - SoLiSC 2011
Qualidade em projetos PHP - SoLiSC 2011Qualidade em projetos PHP - SoLiSC 2011
Qualidade em projetos PHP - SoLiSC 2011Luís Cobucci
 
Zend Framework: Reuso e extensão de componentes para fácil manutenção
Zend Framework: Reuso e extensão de componentes para fácil manutençãoZend Framework: Reuso e extensão de componentes para fácil manutenção
Zend Framework: Reuso e extensão de componentes para fácil manutençãoFlávio Lisboa
 
Django: Uso de frameworks ágeis para desenvolvimento web
Django: Uso de frameworks ágeis para desenvolvimento webDjango: Uso de frameworks ágeis para desenvolvimento web
Django: Uso de frameworks ágeis para desenvolvimento webMiguel Galves
 
Django para portais de alta visibilidade. tdc 2013
Django para portais de alta visibilidade.   tdc 2013Django para portais de alta visibilidade.   tdc 2013
Django para portais de alta visibilidade. tdc 2013Bruno Rocha
 
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
 

Semelhante a Django (20)

F R A M E W O R K D J A N G O
F R A M E W O R K  D J A N G OF R A M E W O R K  D J A N G O
F R A M E W O R K D J A N G O
 
Django - Desenvolvimento web ágil com Python
Django - Desenvolvimento web ágil com PythonDjango - Desenvolvimento web ágil com Python
Django - Desenvolvimento web ágil com Python
 
Python
PythonPython
Python
 
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
 
PHP: Como não programar em POG
PHP: Como não programar em POGPHP: Como não programar em POG
PHP: Como não programar em POG
 
Palestra Zend Framework na Campus Party 2011
Palestra Zend Framework na Campus Party 2011Palestra Zend Framework na Campus Party 2011
Palestra Zend Framework na Campus Party 2011
 
Framework web 01 - Aula UTFPR 2018
Framework web 01 - Aula UTFPR 2018Framework web 01 - Aula UTFPR 2018
Framework web 01 - Aula UTFPR 2018
 
Desenvolvimento web com python e django
Desenvolvimento web com python e djangoDesenvolvimento web com python e django
Desenvolvimento web com python e django
 
Google Web Toolkit
Google Web ToolkitGoogle Web Toolkit
Google Web Toolkit
 
Aplicações Web com Python e Google App Engine
Aplicações Web com Python e Google App EngineAplicações Web com Python e Google App Engine
Aplicações Web com Python e Google App Engine
 
Introdução à Programação Web com Angular
Introdução à Programação Web com AngularIntrodução à Programação Web com Angular
Introdução à Programação Web com Angular
 
Django - Muito além do básico
Django - Muito além do básicoDjango - Muito além do básico
Django - Muito além do básico
 
Python e Django
Python e DjangoPython e Django
Python e Django
 
Qualidade em projetos PHP - SoLiSC 2011
Qualidade em projetos PHP - SoLiSC 2011Qualidade em projetos PHP - SoLiSC 2011
Qualidade em projetos PHP - SoLiSC 2011
 
Zend Framework: Reuso e extensão de componentes para fácil manutenção
Zend Framework: Reuso e extensão de componentes para fácil manutençãoZend Framework: Reuso e extensão de componentes para fácil manutenção
Zend Framework: Reuso e extensão de componentes para fácil manutenção
 
Django: Uso de frameworks ágeis para desenvolvimento web
Django: Uso de frameworks ágeis para desenvolvimento webDjango: Uso de frameworks ágeis para desenvolvimento web
Django: Uso de frameworks ágeis para desenvolvimento web
 
Escalando apps com React e Type Script e SOLID
Escalando apps com React e Type Script e SOLIDEscalando apps com React e Type Script e SOLID
Escalando apps com React e Type Script e SOLID
 
Django para portais de alta visibilidade. tdc 2013
Django para portais de alta visibilidade.   tdc 2013Django para portais de alta visibilidade.   tdc 2013
Django para portais de alta visibilidade. tdc 2013
 
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
 

Mais de flisolmaringa

Desenvolvimento de jogos para iOS com Cocos2d
Desenvolvimento de jogos para iOS com Cocos2dDesenvolvimento de jogos para iOS com Cocos2d
Desenvolvimento de jogos para iOS com Cocos2dflisolmaringa
 
Introdução ao LaTeX
Introdução ao LaTeXIntrodução ao LaTeX
Introdução ao LaTeXflisolmaringa
 
ZFS – Zettabyte File System
ZFS – Zettabyte File SystemZFS – Zettabyte File System
ZFS – Zettabyte File Systemflisolmaringa
 
Platinum Arts Sandbox - Game Maker
Platinum Arts Sandbox - Game MakerPlatinum Arts Sandbox - Game Maker
Platinum Arts Sandbox - Game Makerflisolmaringa
 
Introdução ao processamento paralelo com o Grand Central Dispatch
Introdução ao processamento paralelo com o Grand Central DispatchIntrodução ao processamento paralelo com o Grand Central Dispatch
Introdução ao processamento paralelo com o Grand Central Dispatchflisolmaringa
 
Apresentando o FreeBSD
Apresentando o FreeBSDApresentando o FreeBSD
Apresentando o FreeBSDflisolmaringa
 
Sugar: Um sistema operacional para crianças
Sugar: Um sistema operacional para criançasSugar: Um sistema operacional para crianças
Sugar: Um sistema operacional para criançasflisolmaringa
 
Software livre: filosofia, utopia ou alternativa viável?
Software livre: filosofia, utopia ou alternativa viável?Software livre: filosofia, utopia ou alternativa viável?
Software livre: filosofia, utopia ou alternativa viável?flisolmaringa
 
Apresentando o FreeBSD
Apresentando o FreeBSDApresentando o FreeBSD
Apresentando o FreeBSDflisolmaringa
 

Mais de flisolmaringa (11)

Linux de A a Z
Linux de A a ZLinux de A a Z
Linux de A a Z
 
Desenvolvimento de jogos para iOS com Cocos2d
Desenvolvimento de jogos para iOS com Cocos2dDesenvolvimento de jogos para iOS com Cocos2d
Desenvolvimento de jogos para iOS com Cocos2d
 
Introdução ao LaTeX
Introdução ao LaTeXIntrodução ao LaTeX
Introdução ao LaTeX
 
ZFS – Zettabyte File System
ZFS – Zettabyte File SystemZFS – Zettabyte File System
ZFS – Zettabyte File System
 
Linguagem Go
Linguagem GoLinguagem Go
Linguagem Go
 
Platinum Arts Sandbox - Game Maker
Platinum Arts Sandbox - Game MakerPlatinum Arts Sandbox - Game Maker
Platinum Arts Sandbox - Game Maker
 
Introdução ao processamento paralelo com o Grand Central Dispatch
Introdução ao processamento paralelo com o Grand Central DispatchIntrodução ao processamento paralelo com o Grand Central Dispatch
Introdução ao processamento paralelo com o Grand Central Dispatch
 
Apresentando o FreeBSD
Apresentando o FreeBSDApresentando o FreeBSD
Apresentando o FreeBSD
 
Sugar: Um sistema operacional para crianças
Sugar: Um sistema operacional para criançasSugar: Um sistema operacional para crianças
Sugar: Um sistema operacional para crianças
 
Software livre: filosofia, utopia ou alternativa viável?
Software livre: filosofia, utopia ou alternativa viável?Software livre: filosofia, utopia ou alternativa viável?
Software livre: filosofia, utopia ou alternativa viável?
 
Apresentando o FreeBSD
Apresentando o FreeBSDApresentando o FreeBSD
Apresentando o FreeBSD
 

Django