introdução ao framework django geovanny filho [email protected]

29
Introdução ao Framework Django Geovanny Filho [email protected]

Upload: internet

Post on 18-Apr-2015

119 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Introdução ao Framework Django Geovanny Filho geovannyfilho@gmail.com

Introdução ao Framework Django

Geovanny [email protected]

Page 2: Introdução ao Framework Django Geovanny Filho geovannyfilho@gmail.com

Quem sou eu?

O que é um framework?

Page 3: Introdução ao Framework Django Geovanny Filho geovannyfilho@gmail.com

“é uma estrutura de suporte definida em que um outro projeto de software pode ser organizado e desenvolvido. Um framework pode incluir programas de suporte, bibliotecas de código, linguagens de script e outros softwares para auxiliar no desenvolvimento e unir diferentes componentes de um projeto de software.”

“Frameworks são projetados com a intenção de facilitar o desenvolvimento de software, habilitando designers e programadores a gastarem mais tempo determinando as exigências do software do que com detalhes de baixo nível do sistema.”

Page 4: Introdução ao Framework Django Geovanny Filho geovannyfilho@gmail.com

Sobre o Django

•Framework web de alto nível

•Voltado ao desenvolvimento ágil

•Escrito em Python \O/

•Ênfase na reusabilidade e na plugabilidade

•Open Source

Page 5: Introdução ao Framework Django Geovanny Filho geovannyfilho@gmail.com

Características do Django

•Modelo em camadas MVC

•Mapeamento Objeto Relacional (ORM)

•Baseado no conceito DRY (Don’t repeat yourself)

•Desenvolvimento dirigido a testes (TDD)

Page 6: Introdução ao Framework Django Geovanny Filho geovannyfilho@gmail.com

Sobre o Python

•Altíssimo nível

•Interpretada

•Multiparadigma (OO, procedural e funcional, OA)

•Multiplataforma

Page 7: Introdução ao Framework Django Geovanny Filho geovannyfilho@gmail.com

Sobre o Python

•Tipagem dinâmica e forte

•Coletor de lixo

•Código limpo

•Fácil de aprender

Page 8: Introdução ao Framework Django Geovanny Filho geovannyfilho@gmail.com

Como funciona o Django

Page 9: Introdução ao Framework Django Geovanny Filho geovannyfilho@gmail.com

Como funciona o Django

Page 10: Introdução ao Framework Django Geovanny Filho geovannyfilho@gmail.com

Estrutura de uma aplicação Django

Model ViewTemplate

Page 11: Introdução ao Framework Django Geovanny Filho geovannyfilho@gmail.com

Projetos e aplicaçõesComo os sistemas em Django são organizados?

• Cada sistema é composto por uma ou mais aplicações;•Aplicações são agrupadas em um “projeto”, emboranã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 aoDjango que aplicativos usar e como usá-los;• O arquivo de configuração também tem uma grandevariedade de configurações do sistema.

Page 12: Introdução ao Framework Django Geovanny Filho geovannyfilho@gmail.com

Configurando o settings.py

Page 13: Introdução ao Framework Django Geovanny Filho geovannyfilho@gmail.com

Models

•Camada de abstração do banco de dados

•São classes que herdam de django.db.models.Model

•Definem as entidades do sistema

•Possuim campos que representam campos do banco de dados

•Cada instância de classe representa uma linha no banco de dados

Page 14: Introdução ao Framework Django Geovanny Filho geovannyfilho@gmail.com

Models

Pessoa

nometelefoneemail

Sem relações

Page 15: Introdução ao Framework Django Geovanny Filho geovannyfilho@gmail.com

Gerando o banco de dadosComando>python manage.py syncdb

Page 16: Introdução ao Framework Django Geovanny Filho geovannyfilho@gmail.com

Conhecendo o ShellComando>python manage.py shell

Page 17: Introdução ao Framework Django Geovanny Filho geovannyfilho@gmail.com

ModelsUm para muitos

Jogador

nomenumero_camisa

Clube

Nome

1

*

Page 18: Introdução ao Framework Django Geovanny Filho geovannyfilho@gmail.com

ModelsMuitos para muitos

Disciplina

nome

Aluno

nome

*

*

Page 19: Introdução ao Framework Django Geovanny Filho geovannyfilho@gmail.com

ModelsHerança persistente

Gato

nome_raça

Animal

nome

Page 20: Introdução ao Framework Django Geovanny Filho geovannyfilho@gmail.com

Conhecendo o Admin•É uma aplicação plugável que vem por padrão no framework

•Gera uma interface administrativa com pouco trabalho

•Acelera a produtividade

•Não tão flexível

Page 21: Introdução ao Framework Django Geovanny Filho geovannyfilho@gmail.com

Usando o Admin• Adicione a aplicação django.contrib.admin àsINSTALLED_APPS no settings.py;

• Localize o arquivo urls.py;

• Descomente as seguintes linhas:–> # from django.contrib import admin– ># admin.autodiscover()– ># (r'^admin/', include(admin.site.urls)),

Page 22: Introdução ao Framework Django Geovanny Filho geovannyfilho@gmail.com

URL Dispatcher

•Utilizar URLs limpas e elegantes

•Django permite que você defina as URLs que quiser

•Não são necessários .php .jsf .jsp ou outras coisas sem o menos sentido

•URL na forma de expressão regular

•Mapeamento das URLs pode ser tão extenso quanto curto quanto necessário

Page 23: Introdução ao Framework Django Geovanny Filho geovannyfilho@gmail.com

Urls elegantes

Page 24: Introdução ao Framework Django Geovanny Filho geovannyfilho@gmail.com

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.

•A resposta pode ser um conteúdo HTML de uma página, ou um redirecionamento, ou um erro 404, ou um documento XML, ou uma imagem ou qualquer outro conteúdo, como um arquivo PDF por exemplo

Page 25: Introdução ao Framework Django Geovanny Filho geovannyfilho@gmail.com

Templates•A linguagem de template do django foi designada para estabelecer um equilíbrio de facilidade e flexibilidade

•Um template contém variáveis e tags, quando o template é avaliado essas variáveis são substituidas por valores

Page 26: Introdução ao Framework Django Geovanny Filho geovannyfilho@gmail.com

Templates: variáveis•Para acessar o valor de uma variável no template utilizamos o nome dele dentro de chaves : {{ variavel }}

•Utilizasse (.) para acessar atributos de objetos : {{objeto.atributo }}

•Se a variável não for referenciada, o template vai inserir o valor da configuração TEMPLATE_STRING_IF_INVALID, que é “” (string vazia) por padrão

Page 27: Introdução ao Framework Django Geovanny Filho geovannyfilho@gmail.com

Templates: tags•Em resumo, template tag é uma declaração em seu código HTML que executa uma função python por trás da cortina. Esta função retorna um trecho de código HTML que será preenchido no local da declaração.

•Você pode criar suas próprias tags

•Exemplos de tags: {% if variavel %} ...{% endif %}, {% for item in variavel %}...{% endfor %}, {% url view %}

Page 28: Introdução ao Framework Django Geovanny Filho geovannyfilho@gmail.com

Herança de Templates•A mais poderosa e mais complexa parte da engine de templates do django. A herança de templates possibilita criar uma base “esqueleto” que contem os elementos mais comuns de um site.

•Permite a criação de blocos que facilitam a criação de conteúdo dinâmico

•Tags: {% extends ‘pai.html’ %} ,{% block nome %}

Page 29: Introdução ao Framework Django Geovanny Filho geovannyfilho@gmail.com

Dúvidas?