introdução ao framework django geovanny filho geovannyfilho@gmail.com

Post on 18-Apr-2015

119 Views

Category:

Documents

2 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Introdução ao Framework Django

Geovanny Filhogeovannyfilho@gmail.com

Quem sou eu?

O que é um framework?

“é 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.”

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

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)

Sobre o Python

•Altíssimo nível

•Interpretada

•Multiparadigma (OO, procedural e funcional, OA)

•Multiplataforma

Sobre o Python

•Tipagem dinâmica e forte

•Coletor de lixo

•Código limpo

•Fácil de aprender

Como funciona o Django

Como funciona o Django

Estrutura de uma aplicação Django

Model ViewTemplate

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.

Configurando o settings.py

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

Models

Pessoa

nometelefoneemail

Sem relações

Gerando o banco de dadosComando>python manage.py syncdb

Conhecendo o ShellComando>python manage.py shell

ModelsUm para muitos

Jogador

nomenumero_camisa

Clube

Nome

1

*

ModelsMuitos para muitos

Disciplina

nome

Aluno

nome

*

*

ModelsHerança persistente

Gato

nome_raça

Animal

nome

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

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)),

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

Urls elegantes

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

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

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

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 %}

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 %}

Dúvidas?

top related