introdução ao framework django geovanny filho [email protected]
TRANSCRIPT
Introdução ao Framework Django
Geovanny [email protected]
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?