290 likes | 415 Views
Introdução ao Framework Django. Geovanny Filho geovannyfilho@gmail.com. O que é um framework?. Quem sou eu?.
E N D
Introdução ao Framework Django Geovanny Filho geovannyfilho@gmail.com
O que é um framework? Quem sou eu?
“é 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’trepeatyourself) • Desenvolvimento dirigido a testes (TDD)
Sobre o Python • Altíssimo nível • Interpretada • Multiparadigma (OO, procedurale funcional, OA) • Multiplataforma
Sobre o Python • Tipagem dinâmica e forte • Coletor de lixo • Código limpo • Fácil de aprender
Estrutura de uma aplicação Django Template View Model
Projetos e aplicações • Como os sistemas 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.
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 Sem relações Pessoa nome telefone email
Gerando o banco de dados Comando>pythonmanage.pysyncdb
Conhecendo o Shell Comando>pythonmanage.pyshell
Models Um para muitos Clube Nome 1 * Jogador nome numero_camisa
Models Muitos para muitos Aluno nome * * Disciplina nome
Models Herança persistente Animal nome Gato nome_raça
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 às • INSTALLED_APPS no settings.py; • Localize o arquivo urls.py; • Descomente as seguintes linhas: • –> # fromdjango.contribimportadmin • – ># 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
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 templatedo djangofoi 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 templateutilizamos o nome dele dentro de chaves : {{ variavel }} • Utilizasse (.) para acessar atributos de objetos : {{objeto.atributo }} • Se a variável não for referenciada, o templatevai inserir o valor da configuração TEMPLATE_STRING_IF_INVALID, que é “” (string vazia) por padrão
Templates: tags • Em resumo, templatetagé uma declaração em seu código HTML que executa uma funçãopythonpor 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: {% ifvariavel %} ...{% endif %}, • {% for item in variavel %}...{% endfor %}, {% url view %}
Herança de Templates • A mais poderosa e mais complexa parte da enginede 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 %}