Desenvolvimento Ágil de Aplicações Web
com
Python e Django
Matheus Pereira
matheper@gmail.com
Luciano Camargo Cruz
lccruzx@gmail.com
● WEB
● Python3
● Django
● E muitas coisas legais...
O que veremos...
Web
Web
TCP/IP
● Transmission Control Protocol / Internet Protocol
HTTP - HyperText Transport Protocol
● 1990 - Conceito de hipertexto
○ foi feito para transportar texto
● Tim Berners-Lee
● Para descrever os documentos, foi inventada uma linguagem de marcação
chamada HTML
Web
● First website
Web
Para acessar um website, precisamos ?
Web
1 - O servidor onde a página está hospedada.
Web
2 - A página.
Web
3 - A rede de comunicação.
Web
4 - O navegador para exibir a página.
Web
http://www.worldwidewebsize.com/
Web
JSON - (JavaScript Object Notation - Notação de Objetos JavaScript) é uma formatação
leve de troca de dados.
ORM
ORM - (Object-relational mapping - Mapeamento objeto-relacional)
É uma técnica que efetua o mapeamento entre objetos do sistema e tabelas
do banco de dados.
O desenvolvedor chama métodos de classes no lugar de comandos SQL.
A aplicação não fica acoplada a um só banco de dados, ela pode ser
facilmente portada para outro banco de dados.
MVC - Model–view–controller
Python
Linguagem de Programação de Alto Nível, Interpretada,
Multiparadigma, de Tipagem Dinâmica e Forte.
Iniciado em 1990 por Guido van Rossum
Sintaxe Simples e de Fácil Compreensão
“Python é uma Linguagem de Programação que nos permite trabalhar
de forma rápida e integrar sistemas de forma eficaz.” ( python.org )
Sintaxe
Sintaxe
Variáveis
Tipagem Dinâmica... ...mas Forte.
Operadores
Funções def
Testes if... elif... else
Listas [ ]
Tuplas ( )
Dicionários { }
Estrutura de repetição while
Estrutura de repetição for
List Comprehension
List Comprehension
Módulos
Orientação objeto class
Orientação objeto class
Testes Unitários
Django
Django é um framework para desenvolvimento rápido para web
● Iniciado por Adrian Holovaty e Simon Willison, 2003-2004;
● Django 1.0 release 2008;
● Por quê?
○ Desenvolvimento ágil, DRY (Don't Repeat Yourself);
○ Painel administrativo com vastas funções;
○ Comunicação com diversos bancos de dados e suporta conexão multi bancos;
○ Segurança;
○ Estável, pois está sendo mantido desde 2005 por uma comunidade muito ativa;
○ Escalável;
○ Internacionalização;
○ Software Livre;
○ …
https://www.quora.com/What-is-the-history-of-the-Django-web-framework
Django | Documentação
https://docs.djangoproject.com/pt-br/1.11/
Django | MVT
Django
Instalação:
sudo apt-get install python-pip
pip install django
Verificar:
python3
>>> import django
>>> print(django.get_version())
1.11
https://docs.djangoproject.com/en/1.11/topics/install/#install-the-django-code
Django
https://github.com/lccruz/python_django_minicurso
Projeto Django
Aplicação tem a finalidade de buscar notícias no site REDDIT.
As notícias são recuperadas no formato JSON, interpretadas e
armazenadas no banco de dados.
Diagrama de classe
Django
Criando o projeto
Iniciado o virtualenv:
workon minicurso
Cria o projeto Django:
django-admin startproject minicurso
Cria app noticias:
python manage.py startapp noticias
Cria app tags:
python manage.py startapp tags
Django | Model Tag
tags/models.py
Django | Model Noticia
noticias/models.py
Django | Settings
minicurso/settings.py
Django | makemigrations
Django | migration
Django | Superuser
Django | Runserver
Django | Admin
noticias/admin.py
tags/admin.py
Django | View
noticias/views.py
Django | Url
minicurso/urls.py
Django | Template
Adicionar pasta templates
ao settings.py
Criar pasta templates:
mkdir templates
Django | Template
templates/lista_noticias.html
Django | Generic views
noticias/views.py
Django | Url
minicurso/urls.py
Django | Tests
noticias/tests.py
Django | Tests
noticias/tests.py
Django | Tests
Obrigado ! Perguntas ?

Desenvolvimento Ágil de Aplicações Web com Python e Django