O documento descreve o framework Django para desenvolvimento web. Ele fornece desenvolvimento rápido com menos código através de recursos como mapeamento automático de URLs, validação e renderização de formulários, integração com bancos de dados e templates para separação de conteúdo e apresentação. Django também incentiva o design orientado a objetos e código limpo e legível.
Em uma visão macro, o que tiveram destaque para uma filtragem mais especificas foram o ZEND2 devido a robustez e grande credibilidade de mercado, CodeIgniter devido a grande parte do que saim do desenvolvimento "comum" e passam a ter um primeiro contado com algum tipo de framework, e suas comunidades bastante ativas, e Yii a mais jovens desse framework, porém com um grande crescimento nos últimos anos no meio do desenvolvimento PHP.
Obtive um resultado positivo, pois aderir por uma escolhe bastante objetiva e que hoje tem me dado resultado de usabilidade e tempo.
Apresentação sobre testes em React utilizando Jest e Enzyme. Foi realizado como repasse de conhecimento interno do Instituto Atlântico, ministrado por Henrique Soares, Lucas Gomes e Matheus Freitas Cezar
Em uma visão macro, o que tiveram destaque para uma filtragem mais especificas foram o ZEND2 devido a robustez e grande credibilidade de mercado, CodeIgniter devido a grande parte do que saim do desenvolvimento "comum" e passam a ter um primeiro contado com algum tipo de framework, e suas comunidades bastante ativas, e Yii a mais jovens desse framework, porém com um grande crescimento nos últimos anos no meio do desenvolvimento PHP.
Obtive um resultado positivo, pois aderir por uma escolhe bastante objetiva e que hoje tem me dado resultado de usabilidade e tempo.
Apresentação sobre testes em React utilizando Jest e Enzyme. Foi realizado como repasse de conhecimento interno do Instituto Atlântico, ministrado por Henrique Soares, Lucas Gomes e Matheus Freitas Cezar
Qual o estado dos frameworks atualmente no PHP, assim como a situação atual da linguagem. Como você pode escolher seu framework e um comparativo entre os 4 principais frameworks do mercado.
Apresentação introdutória sobre a MEAN Stack, contando com o desenvolvimento, passo-a-passo, de uma aplicação simples.
Apresentação para o JSDay Campina Grande.
Antes era uma extensão do Postgres, incorporada ao core desde a versão 8.3, FTS (Full Text Search) é um recurso que agiliza e dá maior precisão em buscas textuais. Nesta apresentação serão mostradas de forma resumida, formas e exemplos de aplicação deste recurso.
Django é um framework para desenvolvimento rápido para web, escrito em Python.
Utiliza o padrão MTV (model - template - view).
Principais caracteristicas:
Mapeamento Objeto-Relacional (ORM)
Define a modelagem de dados através de classes em Python. Com isso é possível gerar suas tabelas no banco de dados e manipulá-las sem necessidade de utilizarSQL (o que também é possivel).
Interface Administrativa
No Django é possivel gerar automaticamente uma interface para administração para os modelos criados através do ORM.
Formulários
É possível gerar formulários automaticamente através dos modelos de dados.
URLs Elegantes
No Django não há limitações para criação de URLs elegantes e de maneira simples.
- Nada elegante, difícil para o usário e ruim para buscadores: www.meusite.com.br/index.jsp?id=12&nome=ciclano
- Elegante, fácil leitura e memorização e ótimo para buscadores:
www.meusite.com.br/12/ciclano
Sistema de Templates
O Django tem uma linguagem de templates poderosa, extensível e amigável. Com ela você pode separar design, conteúdo e código em Python.
Internacionalização
Django tem total suporte para aplicações multi-idioma, deixando você especificar strings de tradução e fornecendo ganchos para funcionalidades específicas do idioma.
Sistema de Cache
O Django possui um sistema de cache que se integra ao memcached ou em outros frameworks de cache.
Sobre Python
O que é Python?
Python é uma linguagem de altíssimo nível (VHLL - Very High Level Language) com código fonte aberto.
Python é Interpretado ou compilado?
Python é executado de forma interpretada via bytecode, ou seja, escrevendo apenas uma vez o código Python podemos executá-lo em qualquer sistema operaciona
Apresentação da Palestra sobre o Framework Django, utilizado no desenvolvimento de sites e aplicações web. Na apresentação são mostrados os recursos do Django, citando seu ORM, acesso a bancos de dados, templates, cache, views, urls e diversos outros recursos.
Apresentação sobre o Framework Django utilizada no I SET - Seminário Tecnológico, realizado no Colégio Agrícola Senador Carlos Gomes de Oliveira, em Araquari/SC
Qual o estado dos frameworks atualmente no PHP, assim como a situação atual da linguagem. Como você pode escolher seu framework e um comparativo entre os 4 principais frameworks do mercado.
Apresentação introdutória sobre a MEAN Stack, contando com o desenvolvimento, passo-a-passo, de uma aplicação simples.
Apresentação para o JSDay Campina Grande.
Antes era uma extensão do Postgres, incorporada ao core desde a versão 8.3, FTS (Full Text Search) é um recurso que agiliza e dá maior precisão em buscas textuais. Nesta apresentação serão mostradas de forma resumida, formas e exemplos de aplicação deste recurso.
Django é um framework para desenvolvimento rápido para web, escrito em Python.
Utiliza o padrão MTV (model - template - view).
Principais caracteristicas:
Mapeamento Objeto-Relacional (ORM)
Define a modelagem de dados através de classes em Python. Com isso é possível gerar suas tabelas no banco de dados e manipulá-las sem necessidade de utilizarSQL (o que também é possivel).
Interface Administrativa
No Django é possivel gerar automaticamente uma interface para administração para os modelos criados através do ORM.
Formulários
É possível gerar formulários automaticamente através dos modelos de dados.
URLs Elegantes
No Django não há limitações para criação de URLs elegantes e de maneira simples.
- Nada elegante, difícil para o usário e ruim para buscadores: www.meusite.com.br/index.jsp?id=12&nome=ciclano
- Elegante, fácil leitura e memorização e ótimo para buscadores:
www.meusite.com.br/12/ciclano
Sistema de Templates
O Django tem uma linguagem de templates poderosa, extensível e amigável. Com ela você pode separar design, conteúdo e código em Python.
Internacionalização
Django tem total suporte para aplicações multi-idioma, deixando você especificar strings de tradução e fornecendo ganchos para funcionalidades específicas do idioma.
Sistema de Cache
O Django possui um sistema de cache que se integra ao memcached ou em outros frameworks de cache.
Sobre Python
O que é Python?
Python é uma linguagem de altíssimo nível (VHLL - Very High Level Language) com código fonte aberto.
Python é Interpretado ou compilado?
Python é executado de forma interpretada via bytecode, ou seja, escrevendo apenas uma vez o código Python podemos executá-lo em qualquer sistema operaciona
Apresentação da Palestra sobre o Framework Django, utilizado no desenvolvimento de sites e aplicações web. Na apresentação são mostrados os recursos do Django, citando seu ORM, acesso a bancos de dados, templates, cache, views, urls e diversos outros recursos.
Apresentação sobre o Framework Django utilizada no I SET - Seminário Tecnológico, realizado no Colégio Agrícola Senador Carlos Gomes de Oliveira, em Araquari/SC
Desmitificando as aplicações RESTFul usando Django Rest FrameworkBruno Oliveira
Esta palestra aborda como funciona o estilo arquitetural REST, entendendo os seus princípios e terminologias. Além disso, é feita uma comparação quanto a suas vantagens e desvantagens em relação a outras tecnologias, e para quais casos é indicado. A apresentação também inclui uma demonstração prática usando Django REST Framework.
1. 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
2. Quem sou eu?
●
Desenvolvedor Python;
●
Administrador de Sistemas/Redes;
●
Embaixador da Comunidade openSUSE;
● Contribuidor openSUSE/Novell.
3. 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.
4. 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.
5. “... 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.
6. “... 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.
7. “... 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.
8. 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.
10. 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.
11. 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.
12. 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.
13. 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.
14. 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.
15. 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:
$ djangoadmin.py startproject exemplo
$ cd exemplo && ls
__init__.py manage.py settings.py
urls.py
16. 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.
17. 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!
18. 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)
19. 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'),
)
20. 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.
21. 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),
)
22. 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.
23. 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.
25. 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).
26. 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.
27. 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.
29. 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.
33. O Sistema
Temos modelos, agora precisamos de views,
URLconf e alguns templates.
Aprendendo sobre templates rapidamente...
34. 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, ...
36. 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.
43. 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.