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