SlideShare a Scribd company logo
1 of 23
Download to read offline
D J A N G O
O F R A M E W O R K W E B
PA R A P E R F E C C I O N I S TA S
C O M P R A Z O
1
APRESENTAÇÃO
✓ EDCLEVISTON AMARAL (TEEH AMARAL)
✓ TÉCNICO EM REDES DE COMPUTADORES - IFAL
✓ GRADUANDO EM SISTEMAS DE INFORMAÇÃO - UFAL
✓ DESENVOLVEDOR WEB DESDE 2011
✓ ATUALMENTE DESENVOLVEDOR NA AGÊNCIA NIC
(AGENCIANIC.COM.BR)
2
O QUE É O DJANGO?
✓ FRAMEWORK WEB DA LINGUAGEM 'PYTHON'
✓ É LIVRE E OPEN SOURCE (CÓDIGO ABERTO)
✓ TEM FOCO NO DESENVOLVIMENTO ÁGIL E CÓDIGO
LIMPO
✓ ADOTA O CONCEITO DRY (DON’T REPEAT YOURSELF -
NÃO SE REPITA)
3
POR QUE DESENVOLVER COM DJANGO?
✓ AUXILIA NA UTILIZAÇÃO O CONCEITO DE REUSO DE
CÓDIGO
✓ AUXILIA NA MODULARIZAÇÃO DE SUAS APLICAÇÕES
✓ CONSEQUENTEMENTE FACILITA A MANUTENÇÃO DO SEU
CÓDIGO



RESUMINDO:
✓ FACILITA O DESENVOLVIMENTO DE APLICAÇÕES WEB COM
MAIS QUALIDADE E MENOS CÓDIGO.
4
SUPORTE AOS BANCOS DE DADOS
✓ POSTGRES
✓ MYSQL
✓ SQLITE3
✓ ORACLE
5
PADRÃO DE ARQUITETURA DE SOFTWARE
✓ MVT:
✓ MODEL
✓ VIEW
✓ TEMPLATE
6
PADRÃO DE ARQUITETURA DE SOFTWARE
✓ MVT:
✓ MODEL
7
from django.db import models
class Noticia(models.Model):
titulo = models.CharField(verbose_name='Título',
max_length=255, help_text='Insira um título para a
notícia',)
slug = models.SlugField(verbose_name='Slug', unique=True)
noticia = models.TextField(verbose_name=‘Notícia’,)
dtcad = models.DateTimeField(verbose_name=u'Data de
cadastro', help_text=u'Data de cadastro',
auto_now_add=True, editable=False)
a = models.BooleanField(default=True,
verbose_name='Ativa?', help_text='Ative a notícia para que
esteja disponível no site’)
def __str__(self):
return self.titulo
Exemplo
PADRÃO DE ARQUITETURA DE SOFTWARE
✓ MVT:
✓ VIEW
8
from apps.noticia.models import Noticia
def noticias(request):
noticias = Noticia.objects.filter(a=True).order_by('-
dtcad')
return render_to_response('noticias.html',
RequestContext(request, {
'noticias': noticias,
}))
Exemplo
PADRÃO DE ARQUITETURA DE SOFTWARE
✓ MVT:
✓ VIEW
9
Seleção de dados com ORM Django:
Noticia.objects.filter(a=True).order_by('-dtcad')
=
Selecionando dados com SQL:
SELECT * FROM noticia WHERE a = true ORDER BY
dtcad DESC;
PADRÃO DE ARQUITETURA DE SOFTWARE
✓ MVT:
✓ TEMPLATE
10
{% if noticias %}
<ul>
{% for noticia in noticias %}
<li>{{ noticia.titulo }} - {{ noticia.dtcad }}</li>
{% endfor %}
</ul>
{% else %}
Notícias não cadastradas do momento.
{% endif %}
Exemplo
PADRÃO DE ARQUITETURA DE SOFTWARE
✓ REQUISIÇÃO DO MVT:
✓ ATRAVÉS DAS URLS
11
from django.conf.urls import patterns, url
urlpatterns = patterns('',
url(r'^noticias/$', 'views.noticias',name='site_noticias'),
)
Exemplo
PADRÃO DE ARQUITETURA DE SOFTWARE
✓ CAMINHO DA REQUISIÇÃO:
12
PASSOS PARA INICIAR UM PROJETO DJANGO

INSTALAÇÃO DO PYTHON E DO DJANGO EM HTTPS://
DOCS.DJANGOPROJECT.COM/EN/1.7/INTRO/INSTALL/
13
~ teehamaral$ django-admin startproject flisol2015
flisol2015 teehamaral$ python manage.py makemigrations
flisol2015 teehamaral$ python manage.py migrate
flisol2015 teehamaral$ python manage.py runserver
apps teehamaral$ django-admin startapp noticia
MAS É SÓ? E O FAMOSO CRUD?
✓ CRUD:
✓ CREATE
✓ READ
✓ UPDATE
✓ DELETE
14
COMO FAÇO O PAINEL
ADMINISTRATIVO?
O DJANGO CRIA
AUTOMATICAMENTE O
PAINEL ADMINISTRATIVO COM
O MÓDULO DE USUÁRIOS E
GRUPOS DE USUÁRIOS
15
16
PAINEL ADMINISTRATIVO DO DJANGO
Página de Login
17
PAINEL ADMINISTRATIVO DO DJANGO
Listagem dos apps criados
18
PAINEL ADMINISTRATIVO DO DJANGO
Listagem dos registros
19
PAINEL ADMINISTRATIVO DO DJANGO
Página de adição/edição
20
COMO FAZER O PAINEL ADMINISTRADOR
DO DJANGO?
from django.contrib import admin
from apps.noticia.models import Noticia
class NoticiaAdmin(admin.ModelAdmin):
list_display = ('titulo', 'a',)
list_display_links = list_display
list_filter = ('a', 'dtcad',)
search_fields = ('titulo',)
prepopulated_fields = {'slug': ('titulo',)}
admin.site.register(Noticia, NoticiaAdmin)
Exemplo
21
✓ GLOBO.COM
✓ INSTAGRAM - HTTP://INSTAGRAM.COM/
✓ PINTEREST - HTTP://PINTEREST.COM/
✓ AGENDA PALMEIRA - HTTP://AGENDAPALMEIRA.COM.BR/
✓ SHOWS ARAPIRACA - HTTP://SHOWSARAPIRACA.COM.BR/
ALGUMAS EMPRESAS QUE UTILIZAM DJANGO
22
REFERÊNCIAS
✓ DJANGO: HTTPS://WWW.DJANGOPROJECT.COM
✓ DJANGO - DESENVOLVIMENTO WEB ÁGIL COM PYTHON - HTTP://
PT.SLIDESHARE.NET/IGORSOBREIRA/DJANGO-DESENVOLVIMENTO-WEB-
GIL-COM-PYTHON
✓ DJANGO WEBSITE EXAMPLES, WHICH SITES USE DJANGO WEB
FRAMEWORK? - HTTP://CODECONDO.COM/POPULAR-WEBSITES-DJANGO/
23
OBRIGADO!
CONTATOS:
contato@teehamaral.me
fb.com/teehamaral92
teehamaral.me

More Related Content

Similar to O que é Django e por que usar este framework web

Fazendo Um Elefante Passar Debaixo da Porta - FISL
Fazendo Um Elefante Passar Debaixo da Porta - FISLFazendo Um Elefante Passar Debaixo da Porta - FISL
Fazendo Um Elefante Passar Debaixo da Porta - FISLFabio Telles Rodriguez
 
C++11 e C++14 no Visual Studio 2013 [MVP ShowCast 2013 - DEV - Ferramentas de...
C++11 e C++14 no Visual Studio 2013 [MVP ShowCast 2013 - DEV - Ferramentas de...C++11 e C++14 no Visual Studio 2013 [MVP ShowCast 2013 - DEV - Ferramentas de...
C++11 e C++14 no Visual Studio 2013 [MVP ShowCast 2013 - DEV - Ferramentas de...MVP ShowCast
 
Introdução à SQL Injection
Introdução à SQL InjectionIntrodução à SQL Injection
Introdução à SQL Injectionledsifes
 
ASP .NET MVC - Você esta pronto para a pílula vermelha?
ASP .NET MVC - Você esta pronto para a pílula vermelha?ASP .NET MVC - Você esta pronto para a pílula vermelha?
ASP .NET MVC - Você esta pronto para a pílula vermelha?Douglas Aguiar
 
Apresentação de produtos - SaveinCloud .pptx.pdf
Apresentação de produtos - SaveinCloud .pptx.pdfApresentação de produtos - SaveinCloud .pptx.pdf
Apresentação de produtos - SaveinCloud .pptx.pdfAlexSantos8560
 
Desafios no desenvolvimento de uma aplicação real com Flex @ FUGSC
Desafios no desenvolvimento de uma aplicação real com Flex @ FUGSCDesafios no desenvolvimento de uma aplicação real com Flex @ FUGSC
Desafios no desenvolvimento de uma aplicação real com Flex @ FUGSCJoão Zaratine
 
Application insights + ASP.NET Core
Application insights + ASP.NET CoreApplication insights + ASP.NET Core
Application insights + ASP.NET CoreLetticia Nicoli
 
ORM - TDC Porto Alegre 2014 Trilha .NET
ORM - TDC Porto Alegre 2014 Trilha .NETORM - TDC Porto Alegre 2014 Trilha .NET
ORM - TDC Porto Alegre 2014 Trilha .NETJorge Maia
 
Day 0 iniciando na carreira em ti
Day 0   iniciando na carreira em tiDay 0   iniciando na carreira em ti
Day 0 iniciando na carreira em tiLuis Henrique Costa
 
Google App Engine e PHP
Google App Engine e PHPGoogle App Engine e PHP
Google App Engine e PHPLuiz Messias
 
Desenvolva rapidamente utilizando o framework Desenvolva rapidamente utiliz...
Desenvolva rapidamente
utilizando o framework
Desenvolva rapidamente utiliz...Desenvolva rapidamente
utilizando o framework
Desenvolva rapidamente utiliz...
Desenvolva rapidamente utilizando o framework Desenvolva rapidamente utiliz...Renato Shirakashi
 
Apresentação da Nords by Elissandro "Prof. Pardal" Santos
Apresentação da Nords by Elissandro "Prof. Pardal" SantosApresentação da Nords by Elissandro "Prof. Pardal" Santos
Apresentação da Nords by Elissandro "Prof. Pardal" SantosRogerio P C do Nascimento
 
Descomplicando a montagem de ambientes de Desenvolvimento/Testes com Docker -...
Descomplicando a montagem de ambientes de Desenvolvimento/Testes com Docker -...Descomplicando a montagem de ambientes de Desenvolvimento/Testes com Docker -...
Descomplicando a montagem de ambientes de Desenvolvimento/Testes com Docker -...Renato Groff
 
Desmitificando as aplicações RESTFul usando Django Rest Framework
Desmitificando as aplicações RESTFul usando Django Rest FrameworkDesmitificando as aplicações RESTFul usando Django Rest Framework
Desmitificando as aplicações RESTFul usando Django Rest FrameworkBruno Oliveira
 

Similar to O que é Django e por que usar este framework web (20)

SQLAlchemy - Desenvolvendo uma aplicação com Python
SQLAlchemy - Desenvolvendo uma aplicação com Python SQLAlchemy - Desenvolvendo uma aplicação com Python
SQLAlchemy - Desenvolvendo uma aplicação com Python
 
felipe_brum-cv
felipe_brum-cvfelipe_brum-cv
felipe_brum-cv
 
Fazendo Um Elefante Passar Debaixo da Porta - FISL
Fazendo Um Elefante Passar Debaixo da Porta - FISLFazendo Um Elefante Passar Debaixo da Porta - FISL
Fazendo Um Elefante Passar Debaixo da Porta - FISL
 
#Moving br workshop
#Moving br workshop#Moving br workshop
#Moving br workshop
 
C++11 e C++14 no Visual Studio 2013 [MVP ShowCast 2013 - DEV - Ferramentas de...
C++11 e C++14 no Visual Studio 2013 [MVP ShowCast 2013 - DEV - Ferramentas de...C++11 e C++14 no Visual Studio 2013 [MVP ShowCast 2013 - DEV - Ferramentas de...
C++11 e C++14 no Visual Studio 2013 [MVP ShowCast 2013 - DEV - Ferramentas de...
 
Introdução à SQL Injection
Introdução à SQL InjectionIntrodução à SQL Injection
Introdução à SQL Injection
 
ASP .NET MVC - Você esta pronto para a pílula vermelha?
ASP .NET MVC - Você esta pronto para a pílula vermelha?ASP .NET MVC - Você esta pronto para a pílula vermelha?
ASP .NET MVC - Você esta pronto para a pílula vermelha?
 
Django
DjangoDjango
Django
 
Apresentação de produtos - SaveinCloud .pptx.pdf
Apresentação de produtos - SaveinCloud .pptx.pdfApresentação de produtos - SaveinCloud .pptx.pdf
Apresentação de produtos - SaveinCloud .pptx.pdf
 
Desafios no desenvolvimento de uma aplicação real com Flex @ FUGSC
Desafios no desenvolvimento de uma aplicação real com Flex @ FUGSCDesafios no desenvolvimento de uma aplicação real com Flex @ FUGSC
Desafios no desenvolvimento de uma aplicação real com Flex @ FUGSC
 
Palestra nosql
Palestra nosqlPalestra nosql
Palestra nosql
 
Ruby on Rails for beginners 2.0
Ruby on Rails for beginners 2.0Ruby on Rails for beginners 2.0
Ruby on Rails for beginners 2.0
 
Application insights + ASP.NET Core
Application insights + ASP.NET CoreApplication insights + ASP.NET Core
Application insights + ASP.NET Core
 
ORM - TDC Porto Alegre 2014 Trilha .NET
ORM - TDC Porto Alegre 2014 Trilha .NETORM - TDC Porto Alegre 2014 Trilha .NET
ORM - TDC Porto Alegre 2014 Trilha .NET
 
Day 0 iniciando na carreira em ti
Day 0   iniciando na carreira em tiDay 0   iniciando na carreira em ti
Day 0 iniciando na carreira em ti
 
Google App Engine e PHP
Google App Engine e PHPGoogle App Engine e PHP
Google App Engine e PHP
 
Desenvolva rapidamente utilizando o framework Desenvolva rapidamente utiliz...
Desenvolva rapidamente
utilizando o framework
Desenvolva rapidamente utiliz...Desenvolva rapidamente
utilizando o framework
Desenvolva rapidamente utiliz...
Desenvolva rapidamente utilizando o framework Desenvolva rapidamente utiliz...
 
Apresentação da Nords by Elissandro "Prof. Pardal" Santos
Apresentação da Nords by Elissandro "Prof. Pardal" SantosApresentação da Nords by Elissandro "Prof. Pardal" Santos
Apresentação da Nords by Elissandro "Prof. Pardal" Santos
 
Descomplicando a montagem de ambientes de Desenvolvimento/Testes com Docker -...
Descomplicando a montagem de ambientes de Desenvolvimento/Testes com Docker -...Descomplicando a montagem de ambientes de Desenvolvimento/Testes com Docker -...
Descomplicando a montagem de ambientes de Desenvolvimento/Testes com Docker -...
 
Desmitificando as aplicações RESTFul usando Django Rest Framework
Desmitificando as aplicações RESTFul usando Django Rest FrameworkDesmitificando as aplicações RESTFul usando Django Rest Framework
Desmitificando as aplicações RESTFul usando Django Rest Framework
 

O que é Django e por que usar este framework web

  • 1. D J A N G O O F R A M E W O R K W E B PA R A P E R F E C C I O N I S TA S C O M P R A Z O 1
  • 2. APRESENTAÇÃO ✓ EDCLEVISTON AMARAL (TEEH AMARAL) ✓ TÉCNICO EM REDES DE COMPUTADORES - IFAL ✓ GRADUANDO EM SISTEMAS DE INFORMAÇÃO - UFAL ✓ DESENVOLVEDOR WEB DESDE 2011 ✓ ATUALMENTE DESENVOLVEDOR NA AGÊNCIA NIC (AGENCIANIC.COM.BR) 2
  • 3. O QUE É O DJANGO? ✓ FRAMEWORK WEB DA LINGUAGEM 'PYTHON' ✓ É LIVRE E OPEN SOURCE (CÓDIGO ABERTO) ✓ TEM FOCO NO DESENVOLVIMENTO ÁGIL E CÓDIGO LIMPO ✓ ADOTA O CONCEITO DRY (DON’T REPEAT YOURSELF - NÃO SE REPITA) 3
  • 4. POR QUE DESENVOLVER COM DJANGO? ✓ AUXILIA NA UTILIZAÇÃO O CONCEITO DE REUSO DE CÓDIGO ✓ AUXILIA NA MODULARIZAÇÃO DE SUAS APLICAÇÕES ✓ CONSEQUENTEMENTE FACILITA A MANUTENÇÃO DO SEU CÓDIGO
 
 RESUMINDO: ✓ FACILITA O DESENVOLVIMENTO DE APLICAÇÕES WEB COM MAIS QUALIDADE E MENOS CÓDIGO. 4
  • 5. SUPORTE AOS BANCOS DE DADOS ✓ POSTGRES ✓ MYSQL ✓ SQLITE3 ✓ ORACLE 5
  • 6. PADRÃO DE ARQUITETURA DE SOFTWARE ✓ MVT: ✓ MODEL ✓ VIEW ✓ TEMPLATE 6
  • 7. PADRÃO DE ARQUITETURA DE SOFTWARE ✓ MVT: ✓ MODEL 7 from django.db import models class Noticia(models.Model): titulo = models.CharField(verbose_name='Título', max_length=255, help_text='Insira um título para a notícia',) slug = models.SlugField(verbose_name='Slug', unique=True) noticia = models.TextField(verbose_name=‘Notícia’,) dtcad = models.DateTimeField(verbose_name=u'Data de cadastro', help_text=u'Data de cadastro', auto_now_add=True, editable=False) a = models.BooleanField(default=True, verbose_name='Ativa?', help_text='Ative a notícia para que esteja disponível no site’) def __str__(self): return self.titulo Exemplo
  • 8. PADRÃO DE ARQUITETURA DE SOFTWARE ✓ MVT: ✓ VIEW 8 from apps.noticia.models import Noticia def noticias(request): noticias = Noticia.objects.filter(a=True).order_by('- dtcad') return render_to_response('noticias.html', RequestContext(request, { 'noticias': noticias, })) Exemplo
  • 9. PADRÃO DE ARQUITETURA DE SOFTWARE ✓ MVT: ✓ VIEW 9 Seleção de dados com ORM Django: Noticia.objects.filter(a=True).order_by('-dtcad') = Selecionando dados com SQL: SELECT * FROM noticia WHERE a = true ORDER BY dtcad DESC;
  • 10. PADRÃO DE ARQUITETURA DE SOFTWARE ✓ MVT: ✓ TEMPLATE 10 {% if noticias %} <ul> {% for noticia in noticias %} <li>{{ noticia.titulo }} - {{ noticia.dtcad }}</li> {% endfor %} </ul> {% else %} Notícias não cadastradas do momento. {% endif %} Exemplo
  • 11. PADRÃO DE ARQUITETURA DE SOFTWARE ✓ REQUISIÇÃO DO MVT: ✓ ATRAVÉS DAS URLS 11 from django.conf.urls import patterns, url urlpatterns = patterns('', url(r'^noticias/$', 'views.noticias',name='site_noticias'), ) Exemplo
  • 12. PADRÃO DE ARQUITETURA DE SOFTWARE ✓ CAMINHO DA REQUISIÇÃO: 12
  • 13. PASSOS PARA INICIAR UM PROJETO DJANGO
 INSTALAÇÃO DO PYTHON E DO DJANGO EM HTTPS:// DOCS.DJANGOPROJECT.COM/EN/1.7/INTRO/INSTALL/ 13 ~ teehamaral$ django-admin startproject flisol2015 flisol2015 teehamaral$ python manage.py makemigrations flisol2015 teehamaral$ python manage.py migrate flisol2015 teehamaral$ python manage.py runserver apps teehamaral$ django-admin startapp noticia
  • 14. MAS É SÓ? E O FAMOSO CRUD? ✓ CRUD: ✓ CREATE ✓ READ ✓ UPDATE ✓ DELETE 14 COMO FAÇO O PAINEL ADMINISTRATIVO?
  • 15. O DJANGO CRIA AUTOMATICAMENTE O PAINEL ADMINISTRATIVO COM O MÓDULO DE USUÁRIOS E GRUPOS DE USUÁRIOS 15
  • 16. 16 PAINEL ADMINISTRATIVO DO DJANGO Página de Login
  • 17. 17 PAINEL ADMINISTRATIVO DO DJANGO Listagem dos apps criados
  • 18. 18 PAINEL ADMINISTRATIVO DO DJANGO Listagem dos registros
  • 19. 19 PAINEL ADMINISTRATIVO DO DJANGO Página de adição/edição
  • 20. 20 COMO FAZER O PAINEL ADMINISTRADOR DO DJANGO? from django.contrib import admin from apps.noticia.models import Noticia class NoticiaAdmin(admin.ModelAdmin): list_display = ('titulo', 'a',) list_display_links = list_display list_filter = ('a', 'dtcad',) search_fields = ('titulo',) prepopulated_fields = {'slug': ('titulo',)} admin.site.register(Noticia, NoticiaAdmin) Exemplo
  • 21. 21 ✓ GLOBO.COM ✓ INSTAGRAM - HTTP://INSTAGRAM.COM/ ✓ PINTEREST - HTTP://PINTEREST.COM/ ✓ AGENDA PALMEIRA - HTTP://AGENDAPALMEIRA.COM.BR/ ✓ SHOWS ARAPIRACA - HTTP://SHOWSARAPIRACA.COM.BR/ ALGUMAS EMPRESAS QUE UTILIZAM DJANGO
  • 22. 22 REFERÊNCIAS ✓ DJANGO: HTTPS://WWW.DJANGOPROJECT.COM ✓ DJANGO - DESENVOLVIMENTO WEB ÁGIL COM PYTHON - HTTP:// PT.SLIDESHARE.NET/IGORSOBREIRA/DJANGO-DESENVOLVIMENTO-WEB- GIL-COM-PYTHON ✓ DJANGO WEBSITE EXAMPLES, WHICH SITES USE DJANGO WEB FRAMEWORK? - HTTP://CODECONDO.COM/POPULAR-WEBSITES-DJANGO/