Desmitificando as aplicações RESTFul usando Django Rest Framework
Django - O framework web para perfeccionistas com prazo
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
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
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/