SlideShare uma empresa Scribd logo
1 de 26
Baixar para ler offline
Django
AsuacápsuladesoluçõeswebemPython
4º Encontro Carioca de Testes - 14 de junho de 2016
Sobremim
Paula Grangeiro
28 anos
Bacharel em Sistemas de Informação
Duque de Caxias
Gateira
Python & Arquitetura de Software
yoroshiku!
Ondemeencontrar...
PorquePython? Não seria maravilhoso
se eu pudesse programar
enquanto desenvolvo uma
aplicação?
● É Software Livre
● É multiplataforma
● É uma linguagem de alto nível
● É fortemente tipada
● É de fácil aprendizado
● Possui uma extensa documentação
● Tem a comunidade mais lynda do
mundo <3
Porque...
print(‘É só amor <3’)
4ªposição
Entre as linguagens mais utilizadas no mundo.
fonte: TIOBE, Junho/2016 (http://www.tiobe.com/tiobe_index)
Django
Não seria maravilhoso
se eu pudesse me
preocupar somente em
desenvolver o código do
meu negócio sem me
perder numa selva de
comandos?
Vantagens
StartandGo!
● É Software Livre
● É multiplataforma
● É de nem tão fácil aprendizado
● Possui uma extensa documentação
● Tem a comunidade mais lynda do
mundo <3
● Baixo acoplamento e alta coesão
● Retrocompatibilidade
● É de fácil instalação e
configuração
print(‘codetime’)
BatteriesIncluded
● ORM
● Multi DB
● Migrations
● Authorization
● Authentication
● Admin
● Sites
● Forms
● CSRF
● Dev Server
● WSGI
● TestCases
● Caching
● Templates
● Estáticos
● Views
● URL
Eporaívai...
MVT
A arquitetura MVT do Django é similar ao
conceito de MVC, onde os Models com a
ajuda da ORM intermediam o acesso ao
banco constituindo a camada de Model, os
middlewares administram as requisições
HTTP e enviam para um sistema de
renderização de templates constituindo a
camada de View e as Views com a ajuda do
sistema que resolve as URLs constituem a
camada equivalente a de Controller.
Model
View
Template
Model
Seria um sonho se
existisse um framework
onde não fosse
necessário ter que
lidar com todos essas
tabelas e
relacionamentos...
ORM
patient = Patient.objects.get(id=1)
patient.name = ‘Sara Shiva’
patient.save()
● API única de acesso
independente do banco de dados
do projeto
● Abordagem orientada à objetos
● Transações ACID
Migrations
python manage.py makemigrations
python manage.py migrate
● Mantém a consistência entre os
modelos e tabelas do banco de
dados
print(‘codetime’)
View
A simplicidade do
framework é
inversamente relativa à
quantidade de bruxaria
necessária para
realizar um POST
Views
Responsável por receber uma
requisição(request) Web e
retornar uma resposta
(response)
from django.http import HttpResponse
import datetime
def current_datetime(request):
now = datetime.datetime.now()
html = "<html><body>It is now %s.</body></html>" %
now
return HttpResponse(html)
URLdispatcher
Necessário para ligar a
requisição ao responsável pela
resposta.
from django.conf.urls import url
from . import views
urlpatterns = [
url(r'^today/$', views.current_datetime),
]
print(‘codetime’)
ClassBasedViews
Views especializadas em
certos tipos de objects
request e response
from django.http import HttpResponse
from django.views.generic import View
import datetime
class MyView(View):
def get(self, request):
now = datetime.datetime.now()
html = "<html><body>It is now %s</body></html>" %
now
return HttpResponse(html)
print(‘codetime’)
Template Em apenas um dia e 72
linhas Deus programou o
mundo. Nos outros 6
criou o layout.
Templates
● HTML friendly
● São extensíveis
● Tags
● Filters
{% extends “admin/base.html” %}
{% block content %}
<ul>
{% for athlete in athlete_list %}
<li>{{ athlete.name }}</li>
{% endfor %}
</ul>
{% endblock %}
print(‘codetime’)
Obrigada!
- Email: contato@paulagrangeiro.com.br
- Site: www.paulagrangeiro.com.br
- GitHub: @pgrangeiro
- Twitter: www.twitter.com/paulagrangeiro
- Facebook: www.facebook.com/paula.grangeiro

Mais conteúdo relacionado

Mais procurados

Django para desenvolvimento web; porque ser repetitivo é chato.
Django para desenvolvimento web; porque ser repetitivo é chato.Django para desenvolvimento web; porque ser repetitivo é chato.
Django para desenvolvimento web; porque ser repetitivo é chato.Arthur Furlan
 
Drupal Performance - Dicas e técnicas para levar seu Drupal às nuvens
Drupal Performance - Dicas e técnicas para levar seu Drupal às nuvensDrupal Performance - Dicas e técnicas para levar seu Drupal às nuvens
Drupal Performance - Dicas e técnicas para levar seu Drupal às nuvensPaulino Michelazzo
 
Django Channels - Aplicações real time com Django
Django Channels - Aplicações real time com DjangoDjango Channels - Aplicações real time com Django
Django Channels - Aplicações real time com DjangoPaula Grangeiro
 
Cya grunt.js, hello gulp.js
Cya grunt.js, hello gulp.jsCya grunt.js, hello gulp.js
Cya grunt.js, hello gulp.jsMichael Douglas
 
HTTP, JSON, REST e AJAX com AngularJS
HTTP, JSON, REST e AJAX com AngularJSHTTP, JSON, REST e AJAX com AngularJS
HTTP, JSON, REST e AJAX com AngularJSRodrigo Branas
 
Começando com Zend Framework 2
Começando com Zend Framework 2Começando com Zend Framework 2
Começando com Zend Framework 2Cezar Souza
 
Testando uma aplicação AngularJS utilizando o Karma
Testando uma aplicação AngularJS utilizando o KarmaTestando uma aplicação AngularJS utilizando o Karma
Testando uma aplicação AngularJS utilizando o KarmaHenrique Limas
 
Os 10 maus hábitos dos desenvolvedores JSF
Os 10 maus hábitos dos desenvolvedores JSFOs 10 maus hábitos dos desenvolvedores JSF
Os 10 maus hábitos dos desenvolvedores JSFRafael Ponte
 
Zend Framework Estrutura e TDD
Zend Framework Estrutura e TDDZend Framework Estrutura e TDD
Zend Framework Estrutura e TDDPHP Day Curitiba
 
Tdd em django sem desculpas versao final
Tdd em django sem desculpas versao finalTdd em django sem desculpas versao final
Tdd em django sem desculpas versao finalAdriano Petrich
 
Automação de Testes com AngularJS
Automação de Testes com AngularJSAutomação de Testes com AngularJS
Automação de Testes com AngularJSRodrigo Branas
 
Desafios de um desenvolvedor JSF
Desafios de um desenvolvedor JSFDesafios de um desenvolvedor JSF
Desafios de um desenvolvedor JSFRafael Ponte
 
Programando php com mais segurança
Programando php com mais segurançaProgramando php com mais segurança
Programando php com mais segurançaMichael Douglas
 
Aula Introdução a VRaptor 4 - Pós Java UTFPR
Aula Introdução a VRaptor 4 - Pós Java UTFPRAula Introdução a VRaptor 4 - Pós Java UTFPR
Aula Introdução a VRaptor 4 - Pós Java UTFPRAndré Luiz Forchesatto
 
Introdução ao AngularJS
Introdução ao AngularJSIntrodução ao AngularJS
Introdução ao AngularJSRodrigo Branas
 
Pense no futuro: PHP com Zend Framework
Pense no futuro: PHP com Zend FrameworkPense no futuro: PHP com Zend Framework
Pense no futuro: PHP com Zend FrameworkFlávio Lisboa
 
Workshop de Selenium WebDriver.
Workshop de Selenium WebDriver.Workshop de Selenium WebDriver.
Workshop de Selenium WebDriver.GTS-CE
 

Mais procurados (20)

Django para desenvolvimento web; porque ser repetitivo é chato.
Django para desenvolvimento web; porque ser repetitivo é chato.Django para desenvolvimento web; porque ser repetitivo é chato.
Django para desenvolvimento web; porque ser repetitivo é chato.
 
Drupal Performance - Dicas e técnicas para levar seu Drupal às nuvens
Drupal Performance - Dicas e técnicas para levar seu Drupal às nuvensDrupal Performance - Dicas e técnicas para levar seu Drupal às nuvens
Drupal Performance - Dicas e técnicas para levar seu Drupal às nuvens
 
Django Channels - Aplicações real time com Django
Django Channels - Aplicações real time com DjangoDjango Channels - Aplicações real time com Django
Django Channels - Aplicações real time com Django
 
Angular js
Angular jsAngular js
Angular js
 
Cya grunt.js, hello gulp.js
Cya grunt.js, hello gulp.jsCya grunt.js, hello gulp.js
Cya grunt.js, hello gulp.js
 
HTTP, JSON, REST e AJAX com AngularJS
HTTP, JSON, REST e AJAX com AngularJSHTTP, JSON, REST e AJAX com AngularJS
HTTP, JSON, REST e AJAX com AngularJS
 
Java Web Fácil com VRaptor
Java Web Fácil com VRaptorJava Web Fácil com VRaptor
Java Web Fácil com VRaptor
 
Começando com Zend Framework 2
Começando com Zend Framework 2Começando com Zend Framework 2
Começando com Zend Framework 2
 
Testando uma aplicação AngularJS utilizando o Karma
Testando uma aplicação AngularJS utilizando o KarmaTestando uma aplicação AngularJS utilizando o Karma
Testando uma aplicação AngularJS utilizando o Karma
 
Os 10 maus hábitos dos desenvolvedores JSF
Os 10 maus hábitos dos desenvolvedores JSFOs 10 maus hábitos dos desenvolvedores JSF
Os 10 maus hábitos dos desenvolvedores JSF
 
Zend Framework Estrutura e TDD
Zend Framework Estrutura e TDDZend Framework Estrutura e TDD
Zend Framework Estrutura e TDD
 
Tdd em django sem desculpas versao final
Tdd em django sem desculpas versao finalTdd em django sem desculpas versao final
Tdd em django sem desculpas versao final
 
Selenium - WebDriver
Selenium - WebDriverSelenium - WebDriver
Selenium - WebDriver
 
Automação de Testes com AngularJS
Automação de Testes com AngularJSAutomação de Testes com AngularJS
Automação de Testes com AngularJS
 
Desafios de um desenvolvedor JSF
Desafios de um desenvolvedor JSFDesafios de um desenvolvedor JSF
Desafios de um desenvolvedor JSF
 
Programando php com mais segurança
Programando php com mais segurançaProgramando php com mais segurança
Programando php com mais segurança
 
Aula Introdução a VRaptor 4 - Pós Java UTFPR
Aula Introdução a VRaptor 4 - Pós Java UTFPRAula Introdução a VRaptor 4 - Pós Java UTFPR
Aula Introdução a VRaptor 4 - Pós Java UTFPR
 
Introdução ao AngularJS
Introdução ao AngularJSIntrodução ao AngularJS
Introdução ao AngularJS
 
Pense no futuro: PHP com Zend Framework
Pense no futuro: PHP com Zend FrameworkPense no futuro: PHP com Zend Framework
Pense no futuro: PHP com Zend Framework
 
Workshop de Selenium WebDriver.
Workshop de Selenium WebDriver.Workshop de Selenium WebDriver.
Workshop de Selenium WebDriver.
 

Destaque

Mini curso introdutório ao Django
Mini curso introdutório ao DjangoMini curso introdutório ao Django
Mini curso introdutório ao DjangoVinicius Mendes
 
Django, Framework Python para desenvolvimento web
Django, Framework Python para desenvolvimento webDjango, Framework Python para desenvolvimento web
Django, Framework Python para desenvolvimento webMayron Cachina
 
Mini curso de django
Mini curso de djangoMini curso de django
Mini curso de djangorosenclever
 
Dezembro 2015 - UI AutoMonkey - Teste Automatizado iOS
Dezembro 2015 - UI AutoMonkey - Teste Automatizado iOSDezembro 2015 - UI AutoMonkey - Teste Automatizado iOS
Dezembro 2015 - UI AutoMonkey - Teste Automatizado iOSGrupo de Testes Carioca
 
Qualidade levada a sério em Python - Emilio Simoni
Qualidade levada a sério em Python - Emilio SimoniQualidade levada a sério em Python - Emilio Simoni
Qualidade levada a sério em Python - Emilio SimoniGrupo de Testes Carioca
 
Prototype Framework Javascript
Prototype Framework JavascriptPrototype Framework Javascript
Prototype Framework JavascriptMarcio Romu
 
Testes em um contexto de Continuous Delivery
Testes em um contexto de Continuous DeliveryTestes em um contexto de Continuous Delivery
Testes em um contexto de Continuous DeliveryGrupo de Testes Carioca
 
Maio 2016 - Integração e Validação Contínua
Maio 2016 - Integração e Validação ContínuaMaio 2016 - Integração e Validação Contínua
Maio 2016 - Integração e Validação ContínuaGrupo de Testes Carioca
 
O que é esse tal de rest? [PyBR2016]
O que é esse tal de rest? [PyBR2016]O que é esse tal de rest? [PyBR2016]
O que é esse tal de rest? [PyBR2016]Filipe Ximenes
 
Cloud Computing e Integração Contínua com o Windows Azure
Cloud Computing e Integração Contínua com o Windows AzureCloud Computing e Integração Contínua com o Windows Azure
Cloud Computing e Integração Contínua com o Windows AzureGrupo de Testes Carioca
 
Testes de integração automatizados com GoCD e Consu
Testes de integração automatizados com GoCD e ConsuTestes de integração automatizados com GoCD e Consu
Testes de integração automatizados com GoCD e ConsuGrupo de Testes Carioca
 
Charles Proxy, um canivete suíço para o dia a dia de desenvolvimento (testes)
Charles Proxy, um canivete suíço para o dia a dia de desenvolvimento (testes)Charles Proxy, um canivete suíço para o dia a dia de desenvolvimento (testes)
Charles Proxy, um canivete suíço para o dia a dia de desenvolvimento (testes)Grupo de Testes Carioca
 
Dezembro 2015 - Primeiros Passos em Automação de Testes
Dezembro 2015 - Primeiros Passos em Automação de Testes Dezembro 2015 - Primeiros Passos em Automação de Testes
Dezembro 2015 - Primeiros Passos em Automação de Testes Grupo de Testes Carioca
 
Automação de Testes de Aceitação em Sistemas Web
Automação de Testes de Aceitação em Sistemas WebAutomação de Testes de Aceitação em Sistemas Web
Automação de Testes de Aceitação em Sistemas WebRodrigo Veiga
 
DJANGO-REST-FRAMEWORK: AWESOME WEB-BROWSABLE WEB APIS
DJANGO-REST-FRAMEWORK: AWESOME WEB-BROWSABLE WEB APISDJANGO-REST-FRAMEWORK: AWESOME WEB-BROWSABLE WEB APIS
DJANGO-REST-FRAMEWORK: AWESOME WEB-BROWSABLE WEB APISFernando Rocha
 

Destaque (20)

Mini curso introdutório ao Django
Mini curso introdutório ao DjangoMini curso introdutório ao Django
Mini curso introdutório ao Django
 
Django, Framework Python para desenvolvimento web
Django, Framework Python para desenvolvimento webDjango, Framework Python para desenvolvimento web
Django, Framework Python para desenvolvimento web
 
Aplicacoes Rapidas Para Web Com Django
Aplicacoes Rapidas Para Web Com DjangoAplicacoes Rapidas Para Web Com Django
Aplicacoes Rapidas Para Web Com Django
 
Mini curso de django
Mini curso de djangoMini curso de django
Mini curso de django
 
Dezembro 2015 - UI AutoMonkey - Teste Automatizado iOS
Dezembro 2015 - UI AutoMonkey - Teste Automatizado iOSDezembro 2015 - UI AutoMonkey - Teste Automatizado iOS
Dezembro 2015 - UI AutoMonkey - Teste Automatizado iOS
 
Qualidade levada a sério em Python - Emilio Simoni
Qualidade levada a sério em Python - Emilio SimoniQualidade levada a sério em Python - Emilio Simoni
Qualidade levada a sério em Python - Emilio Simoni
 
Prototype Framework Javascript
Prototype Framework JavascriptPrototype Framework Javascript
Prototype Framework Javascript
 
Testes em um contexto de Continuous Delivery
Testes em um contexto de Continuous DeliveryTestes em um contexto de Continuous Delivery
Testes em um contexto de Continuous Delivery
 
Março 2016 - Como testar sua API Rest
Março 2016 - Como testar sua API RestMarço 2016 - Como testar sua API Rest
Março 2016 - Como testar sua API Rest
 
Junho 2016 - Testes de Carga com Locust
Junho 2016 - Testes de Carga com LocustJunho 2016 - Testes de Carga com Locust
Junho 2016 - Testes de Carga com Locust
 
Maio 2016 - O QA em um Time Ágil
Maio 2016 - O QA em um Time Ágil Maio 2016 - O QA em um Time Ágil
Maio 2016 - O QA em um Time Ágil
 
Maio 2016 - Integração e Validação Contínua
Maio 2016 - Integração e Validação ContínuaMaio 2016 - Integração e Validação Contínua
Maio 2016 - Integração e Validação Contínua
 
O que é esse tal de rest? [PyBR2016]
O que é esse tal de rest? [PyBR2016]O que é esse tal de rest? [PyBR2016]
O que é esse tal de rest? [PyBR2016]
 
Cloud Computing e Integração Contínua com o Windows Azure
Cloud Computing e Integração Contínua com o Windows AzureCloud Computing e Integração Contínua com o Windows Azure
Cloud Computing e Integração Contínua com o Windows Azure
 
Testes de integração automatizados com GoCD e Consu
Testes de integração automatizados com GoCD e ConsuTestes de integração automatizados com GoCD e Consu
Testes de integração automatizados com GoCD e Consu
 
Charles Proxy, um canivete suíço para o dia a dia de desenvolvimento (testes)
Charles Proxy, um canivete suíço para o dia a dia de desenvolvimento (testes)Charles Proxy, um canivete suíço para o dia a dia de desenvolvimento (testes)
Charles Proxy, um canivete suíço para o dia a dia de desenvolvimento (testes)
 
Dezembro 2015 - Primeiros Passos em Automação de Testes
Dezembro 2015 - Primeiros Passos em Automação de Testes Dezembro 2015 - Primeiros Passos em Automação de Testes
Dezembro 2015 - Primeiros Passos em Automação de Testes
 
Automação de Testes de Aceitação em Sistemas Web
Automação de Testes de Aceitação em Sistemas WebAutomação de Testes de Aceitação em Sistemas Web
Automação de Testes de Aceitação em Sistemas Web
 
Julho 2016 - Microsoft Test Manager
Julho 2016 - Microsoft Test ManagerJulho 2016 - Microsoft Test Manager
Julho 2016 - Microsoft Test Manager
 
DJANGO-REST-FRAMEWORK: AWESOME WEB-BROWSABLE WEB APIS
DJANGO-REST-FRAMEWORK: AWESOME WEB-BROWSABLE WEB APISDJANGO-REST-FRAMEWORK: AWESOME WEB-BROWSABLE WEB APIS
DJANGO-REST-FRAMEWORK: AWESOME WEB-BROWSABLE WEB APIS
 

Semelhante a Django: Uma introdução ao framework em Python

Django - Desenvolvimento web ágil com Python
Django - Desenvolvimento web ágil com PythonDjango - Desenvolvimento web ágil com Python
Django - Desenvolvimento web ágil com PythonIgor Sobreira
 
Desenvolvimento web com python e django
Desenvolvimento web com python e djangoDesenvolvimento web com python e django
Desenvolvimento web com python e djangoIgor Sobreira
 
Entendendo Frameworks web com Python
Entendendo Frameworks web com PythonEntendendo Frameworks web com Python
Entendendo Frameworks web com PythonLuiz Aldabalde
 
Entendendo Framework Web com Python
Entendendo Framework Web com PythonEntendendo Framework Web com Python
Entendendo Framework Web com PythonPythOnRio
 
Desenvolvimento de aplicações embarcadas utilizando Python
Desenvolvimento de aplicações embarcadas utilizando PythonDesenvolvimento de aplicações embarcadas utilizando Python
Desenvolvimento de aplicações embarcadas utilizando PythonFlávio Ribeiro
 
Ampliando os Horizontes dos Profissionais de Redes através do Python
Ampliando os Horizontes dos Profissionais de Redes através do PythonAmpliando os Horizontes dos Profissionais de Redes através do Python
Ampliando os Horizontes dos Profissionais de Redes através do PythonIP10
 
F R A M E W O R K D J A N G O
F R A M E W O R K  D J A N G OF R A M E W O R K  D J A N G O
F R A M E W O R K D J A N G Ofabio.thomaz
 
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
 
Python e Django na Globo.com
Python e Django na Globo.comPython e Django na Globo.com
Python e Django na Globo.comricobl
 
Robot Framework no DevTests #34
Robot Framework no DevTests #34Robot Framework no DevTests #34
Robot Framework no DevTests #34Mayara Fernandes
 
Congresso iii unifacsv3
Congresso iii unifacsv3Congresso iii unifacsv3
Congresso iii unifacsv3IP10
 
Congresso iv
Congresso ivCongresso iv
Congresso ivIP10
 
Django Módulo Básico Parte I - Desenvolvimento de uma aplicação Web
Django Módulo Básico Parte I - Desenvolvimento de uma aplicação WebDjango Módulo Básico Parte I - Desenvolvimento de uma aplicação Web
Django Módulo Básico Parte I - Desenvolvimento de uma aplicação Webantonio sérgio nogueira
 
G.O. - Grafos Online
G.O. - Grafos OnlineG.O. - Grafos Online
G.O. - Grafos Onlinedudleyy
 
Apresentação final
Apresentação finalApresentação final
Apresentação finalvalmon
 

Semelhante a Django: Uma introdução ao framework em Python (20)

Django
DjangoDjango
Django
 
Django - Desenvolvimento web ágil com Python
Django - Desenvolvimento web ágil com PythonDjango - Desenvolvimento web ágil com Python
Django - Desenvolvimento web ágil com Python
 
Desenvolvimento web com python e django
Desenvolvimento web com python e djangoDesenvolvimento web com python e django
Desenvolvimento web com python e django
 
Entendendo Frameworks web com Python
Entendendo Frameworks web com PythonEntendendo Frameworks web com Python
Entendendo Frameworks web com Python
 
Entendendo Framework Web com Python
Entendendo Framework Web com PythonEntendendo Framework Web com Python
Entendendo Framework Web com Python
 
Desenvolvimento de aplicações embarcadas utilizando Python
Desenvolvimento de aplicações embarcadas utilizando PythonDesenvolvimento de aplicações embarcadas utilizando Python
Desenvolvimento de aplicações embarcadas utilizando Python
 
Ampliando os Horizontes dos Profissionais de Redes através do Python
Ampliando os Horizontes dos Profissionais de Redes através do PythonAmpliando os Horizontes dos Profissionais de Redes através do Python
Ampliando os Horizontes dos Profissionais de Redes através do Python
 
F R A M E W O R K D J A N G O
F R A M E W O R K  D J A N G OF R A M E W O R K  D J A N G O
F R A M E W O R K D J A N G O
 
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
 
FJN 2011
FJN 2011FJN 2011
FJN 2011
 
Python e Django na Globo.com
Python e Django na Globo.comPython e Django na Globo.com
Python e Django na Globo.com
 
Robot Framework no DevTests #34
Robot Framework no DevTests #34Robot Framework no DevTests #34
Robot Framework no DevTests #34
 
Python e Golang - Parte 2
Python e Golang - Parte 2Python e Golang - Parte 2
Python e Golang - Parte 2
 
Congresso iii unifacsv3
Congresso iii unifacsv3Congresso iii unifacsv3
Congresso iii unifacsv3
 
Congresso iv
Congresso ivCongresso iv
Congresso iv
 
Apresentação faef
Apresentação faefApresentação faef
Apresentação faef
 
Django Módulo Básico Parte I - Desenvolvimento de uma aplicação Web
Django Módulo Básico Parte I - Desenvolvimento de uma aplicação WebDjango Módulo Básico Parte I - Desenvolvimento de uma aplicação Web
Django Módulo Básico Parte I - Desenvolvimento de uma aplicação Web
 
G.O. - Grafos Online
G.O. - Grafos OnlineG.O. - Grafos Online
G.O. - Grafos Online
 
Apresentação final
Apresentação finalApresentação final
Apresentação final
 
Conhecendo o Django
Conhecendo o DjangoConhecendo o Django
Conhecendo o Django
 

Django: Uma introdução ao framework em Python