Logo Passei Direto
Buscar
Material
páginas com resultados encontrados.
páginas com resultados encontrados.
left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Prévia do material em texto

Python para Aplicações Web
Capítulo 1. Introdução ao desenvolvimento Web
Prof. Fernando Felix
Introdução ao desenvolvimento Web
1.1.[1, 2, 3]. Apresentação do Módulo
Prof. Fernando Felix
Nesta Aula
❑ Objetivos.
❑ Motivação/Indústria 4.0.
❑ Especificação do projeto.
Objetivos
Por que aprender desenvolvimento Web?
O que é a Web?
Construir páginas e formulários Web com HTML e JSON.
Consumir Web APIs.
Implementar aplicações Web com Flask ou Django.
Práticas!
Projeto Web para ingestão e visualização de 
dados.
A Indústria 4.0 engloba um amplo sistema de tecnologias
avançadas como inteligência artificial, robótica,
internet das coisas e
computação em nuvem
que estão mudando as
formas de produção e
os modelos de
negócios no Brasil e
no mundo.
“O futuro do 
emprego será 
feito por 
vagas que 
não existem, 
em indústrias 
que usam 
tecnologias 
novas, em 
condições 
planetárias 
que nenhum 
ser humano já 
experimentou”
(David Ritter - 
Greenpeace).
Motivação/Indústria 4.0
Engenheiro(a) Frontend Engenheiro(a) Backend
Engenheiro(a) Full Stack
Motivação/Indústria 4.0
BIG DATA LAKE HOUSE AI MODELING PREDICTION
SERVING
WEB PLATFORMS & APPS
Engenheiro
(a) de 
Dados
Cientista 
de Dados
Engenheiro
(a) de 
Machine 
Learning
Analista de 
Dados
etc.
Motivação/Indústria 4.0
História do Usuário:
Como Gestor de Estoque, eu quero 
acessar uma página Web e 
visualizar/filtrar informações analíticas 
de compartilhamento de bicicletas, 
para fazer um bom planejamento de 
demandas.
Fonte de Dados (mesma do desafio 
do módulo 2):
Contém a contagem de bicicletas 
alugadas entre 2011 e 2012 no sistema 
da Capital Bikeshare, com informações 
meteorológicas e sazonais.
Especificação do projeto
Primeiro, criar uma Prova de Conceito (PoC) no 
Google Data Studio com informações relevantes.
Segundo, criar o Protótipo de uma página Web 
(HTML) com dados simulados/mock (JSON).
Terceiro, criar um Servidor Web minimamente funcional 
para servir o protótipo (HTML + JSON).
Quarto, criar um Aplicativo Web minimamente 
funcional com os principais recursos 
(visualização/filtro).
Conclusão
O que aprendemos?
1) Abordamos sobre os objetivos do módulo.
2) Entendemos um pouco o contexto industrial em que estamos 
inseridos e as diferentes profissões que vêm sendo 
impulsionadas pela transformação digital da Indústria 3.0 e 4.0.
3) E, por fim, apresentamos o escopo e etapas do projeto que 
iremos desenvolver durante este módulo.
02.
01. 03.
04.
Próxima Aula
Prática: Preparação do ambiente 
de desenvolvimento
Prática: Visualizando dados na 
Web com Google Data Studio
FundamentosCasos de aplicação
Introdução ao desenvolvimento Web
1.1.4. Prática: Preparação do ambiente de desenvolvimento
Prof. Fernando Felix
02.
01. 03.
04.
Próxima Aula
Casos de aplicação Fundamentos
Prática: Consumindo Web API de 
TODO List com Postman
Prática: Visualizando dados na 
Web com Google Data Studio
Introdução ao desenvolvimento Web
1.2.[1, 2] Casos de aplicação
Prof. Fernando Felix
Nesta Aula
❑ Computação em Nuvem: SAAS, Streaming, etc.
❑ AIAAS.
Computação em Nuvem:
SAAS, Streaming, etc.
Aplicação AplicaçãoAplicaçãoAplicação
● Custo-benefício.
● Transformação digital (3.0, 4.0).
● Criação de soluções internas.
● Escalabilidade.
AIAAS
AI Infraestrutura
AI Data
Data Lake, RDBMS, No SQL, 
Feature Store
AI Compute
VM, Serverless (functions), 
Batch Processing
AI Services
Cognitive AI
1. Language 2. Speech 3. 
Search 4. Vision
Conversational AI Custom AI
AI Tools
Notebooks IDE Data Prep LibsFrameworks
AIAAS
https://sketch2code.azurewebsites.net/
https://sketch2code.azurewebsites.net/
https://copilot.github.com/
https://copilot.github.com/
https://openai.com/blog/dall-e/
https://openai.com/blog/dall-e/
https://www.autodraw.com/
https://www.autodraw.com/
https://translate.google.com.br/
https://translate.google.com.br/
https://deepart.io/
https://deepart.io/
https://teachablemachine.withgoogle.com/
https://teachablemachine.withgoogle.com/
https://www.nvidia.com/en-us/research/ai-playground/
https://www.nvidia.com/en-us/research/ai-playground/
AIAAS
Fórum de Debates do Módulo 3:
- Demonstrar uma aplicação Web com ênfase em AI (slide anterior).
- Discorrer sobre implicações futuras que a transformação digital ou 
AI terá na vida das pessoas ou empresas.
ConclusãoConclusão
O que aprendemos?
1) Diferentes tipos de nuvem de computadores: IAAS, PASS, SAAS.
2) Diferentes tipos de nuvem para AI: baixo nível vs. alto nível.
3) Alguns Web Apps divertidos baseados em AI.
02.
01. 03.
04.
Próxima Aula
Prática: Visualizando dados na 
Web com Google Data Studio
Fundamentos: Protocolo HTTP, 
Web APIs e Exemplos
Prática: Consumindo Web API de 
TODO List com Postman
Fundamentos: Modelo OSI, 
Arquitetura cliente-servidor
Introdução ao desenvolvimento Web
1.2.3. Prática: Visualizando dados na Web com Google Data Studio
Prof. Fernando Felix
02.
01. 03.
04.
Próxima Aula
Fundamentos: Modelo OSI, 
Arquitetura cliente-servidor
Prática: Consumindo Web API de 
TODO List com Postman
Capítulo 2. HTML, XML e JSONFundamentos: Protocolo HTTP, 
Web APIs e Exemplos
Introdução ao desenvolvimento Web
1.3.[1, 2] Fundamentos: Modelo OSI, Arquitetura cliente-servidor
Prof. Fernando Felix
Nesta Aula
❑ Modelo OSI.
❑ Arquitetura cliente-servidor.
Modelo OSI
MAN
LAN
WAN
Open Systems Interconnection
Servidor HTTP Servidor Banco 
de Dados
Arquitetura Cliente-Servidor
Cliente
Cliente
Cliente
Internet
HTTP
HTTP
HT
TP
ConclusãoConclusão
O que aprendemos?
1) Modelo OSI e tipos de redes de computadores.
2) Funcionamento básico de uma arquitetura cliente-servidor.
02.
01. 03.
04.
Próxima Aula
Fundamentos: Protocolo HTTP, 
Web APIs e Exemplos
Capítulo 2. HTML, XML e JSON
Prática: Consumindo Web API de 
TODO List com Postman
Introdução ao desenvolvimento Web
1.3.[3, 4] Fundamentos: Protocolo HTTP, Web APIs e Exemplos
Prof. Fernando Felix
Nesta Aula
❑ Protocolo HTTP.
❑ Web APIs e Exemplos.
Servidor 
HTTP
Protocolo HTTP
HTTP Request Get /watch?v=fk1Q9y6VVy0 HTTP/1.1
HTTP Method GET
Headers Host: www.youtube.com
Path: /watch?v=fk1Q9y6VVy0
Scheme: https
Accept: text/html
Accept-language: pt-BR
Query String v: fk1Q9y6VVy0
Body
HTTP 
Response
Get /watch?v=fk1Q9y6VVy0 HTTP/1.1
HTTP Status 200 OK
Headers content-type: text/html; charset=utf-8
date: Tue, 10 Aug 2021 03:56:17 GMT
Content <html> <body>
 <video 
src="blob:https://www.youtube.com/06df752b-a883
-443f-b282-8437a0ed7760">
 <\video>
<\body><\html>
Envia 
requisição
Recebe 
requisição Processa
Requisição
Envia
Resposta
Recebe
Resposta
http://www.youtube.com
https://www.youtube.com/watch?v=fk1Q9y6VVy0
https://www.youtube.com/06df752b-a883-443f-b282-8437a0ed7760
https://www.youtube.com/06df752b-a883-443f-b282-8437a0ed7760
Protocolo HTTP
Tipos de requisições HTTP:
● GET: São os tipos mais comuns de solicitações na Web. Eles simplesmente 
recuperam dados de um servidor. Em 99% das vezes, eles são usados para solicitar 
HTML.
● POST: São usadas para enviar dados ao servidor para criar um novo objeto 
(entidade) no servidor (Ex: novo vídeo). Os dados são enviados no Body da 
requisição.
● PUT: São usadas para enviar dados ao servidor para substituir um novo objeto 
(entidade) no servidor ( Ex: substituir vídeo).
● PATCH: São usados para atualizar algum atributo do objeto/entidade existente no 
servidor (Ex: descrição do vídeo).
● DELETE: São semelhantes às requisições GET por não terem Body. Eles são o 
oposto de GET. Requisições DELETE são usadas para excluir dados do servidor.
Protocolo HTTP
Códigos de status
Web APIs e Exemplos
https://pokeapi.co
https://pokeapi.co
https://www.omdbapi.com
https://www.omdbapi.com
https://thedogapi.com
https://thedogapi.com
https://developer.marvel.com
https://developer.marvel.com
https://developer.riotgames.com
https://developer.riotgames.com
https://brasil.io/homehttps://brasil.io/home
ConclusãoConclusão
O que aprendemos?
1) Funcionamento básico do protocolo HTTP, tipos de requisição e 
tipos de respostas (status codes).
2) Exemplos de Web APIs.
02.
01. 03.
04.
Próxima Aula
Prática: Consumindo Web API de 
TODO List com Postman
Capítulo 2. HTML, XML e JSON
Introdução ao desenvolvimento Web
1.3.5. Prática: Consumindo Web API de TODO List com Postman
Prof. Fernando Felix
02.
01. 03.
04.
Próxima Aula
Capítulo 2. HTML, XML e JSON Introdução ao XML/JSON
PráticasIntrodução ao HTML
Python para Aplicações Web
Capítulo 2. HTML, XML e JSON
Prof. Fernando Felix
HTML, XML e JSON
2.1. Introdução ao HTML
Prof. Fernando Felix
Nesta Aula
❑ O que é HTML?
❑ Anatomia de um elemento HTML.
❑ Atributos.
❑ Anatomia de um documento HTML.
❑ Indo Além.
HTML (HyperText Markup Language) não é uma linguagem 
de programação, é uma linguagem de marcação utilizada 
para dizer ao seu navegador como estruturar a página web 
que você visita.
● Descreve a estrutura de uma página da web.
● Consiste em uma série de elementos.
● Os elementos informam ao navegador como exibir o 
conteúdo.
● Os elementos identificam partes de conteúdo, como "isto 
é um título", "isto é um parágrafo", "isto é um link" etc.
O que é HTML?
1
3
4
2
Anatomia de um elemento HTML
● Ferramenta: CodePen
● Alterar: CodePen: Html 1
https://codepen.io/pen/
https://codepen.io/fernandojunior/pen/PomVqGm
● Alterar: CodePen: Html 2
https://codepen.io/fernandojunior/pen/PomVqQO
● Alterar: CodePen: Html 3
https://codepen.io/fernandojunior/pen/abWXORv
● Alterar: CodePen: Html 4
● Códigos caracteres 
especiais
https://codepen.io/fernandojunior/pen/YzVBXRV
https://en.wikipedia.org/wiki/List_of_XML_and_HTML_character_entity_references
https://en.wikipedia.org/wiki/List_of_XML_and_HTML_character_entity_references
Atributos
● Alterar: CodePen: Html 5
https://codepen.io/fernandojunior/pen/gOWqpNe
● Alterar: CodePen: Html 6
https://codepen.io/fernandojunior/pen/NWjoGPe
Anatomia de um documento HTML
● Alterar: CodePen: 
Html 7
Para testar no Navegador:
1. Copiar o exemplo de 
página HTML.
2. Criar um novo 
documento em seu 
editor de texto (bloco 
de notas, gedit, 
vscode).
3. Colar o código no 
novo arquivo de texto.
4. Salvar o arquivo com 
o nome index.html.
5. Abrir o arquivo 
index.html com um 
navegador.
https://codepen.io/fernandojunior/pen/KKmJdzO
https://codepen.io/fernandojunior/pen/KKmJdzO
Sugestões:
● HTML Style Guide and Coding Conventions
● HTML head Elements 
● HTML Encoding (Character Sets)
● HTML Elements 
● HTML Attributes 
● HTML - The id attribute
● HTML Headings
● HTML Paragraphs
● HTML Text Formatting
● HTML Links Hyperlinks 
● HTML Images Syntax 
● HTML Comments 
● HTML Layout Elements and Techniques 
● HTML Semantic Elements 
● HTML Lists
● HTML Styles chapter
● HTML Styles CSS
● HTML JavaScript
Indo Além
https://www.w3schools.com/html/html5_syntax.asp
https://www.w3schools.com/html/html_head.asp
https://www.w3schools.com/html/html_charset.asp
https://www.w3schools.com/html/html_elements.asp
https://www.w3schools.com/html/html_attributes.asp
https://www.w3schools.com/html/html_id.asp
https://www.w3schools.com/html/html_headings.asp
https://www.w3schools.com/html/html_paragraphs.asp
https://www.w3schools.com/html/html_formatting.asp
https://www.w3schools.com/html/html_links.asp
https://www.w3schools.com/html/html_images.asp
https://www.w3schools.com/html/html_comments.asp
https://www.w3schools.com/html/html_layout.asp
https://www.w3schools.com/html/html5_semantic_elements.asp
https://www.w3schools.com/html/html_lists.asp
https://www.w3schools.com/html/html_styles.asp
https://www.w3schools.com/html/html_css.asp
https://www.w3schools.com/html/html_scripts.asp
ConclusãoConclusão
O que aprendemos?
Princípios básicos do HTML. Agora, você deve entender como é a 
linguagem, como ela funciona em um nível básico, e ser capaz de 
escrever alguns elementos e atributos.
02.
01. 03.
04.
Próxima Aula
Tabelas HTML Introdução ao XML/JSON
PráticasFormulários HTML
HTML, XML e JSON
2.1.1. Tabelas HTML
Prof. Fernando Felix
Nesta Aula
❑ O que é uma tabela HTML?
❑ Adicionando cabeçalhos com elementos.
❑ Permitindo que as células ocupem várias linhas e colunas.
❑ Estilo comum para colunas.
❑ Indo Além.
Uma tabela é um conjunto estruturado de dados compostos de linhas e 
colunas (dados tabulares). Uma tabela permite consultar, de forma 
rápida e fácil, valores que indicam algum tipo de conexão entre 
diferentes tipos de dados.
Para que as tabelas sejam eficazes na web, você precisa fornecer um 
estilo CSS e uma boa estrutura HTML. Neste módulo, estamos nos 
concentrando na parte HTML.
O que é uma tabela?
Censo dos EUA de 1800
● Alterar: CodePen: Table 1
https://codepen.io/fernandojunior/pen/xxdMQQL
● Alterar: CodePen: Table 2
https://codepen.io/fernandojunior/pen/XWROorR
● Alterar: CodePen: Table 3
https://codepen.io/fernandojunior/pen/WNjPLQv
● Alterar: CodePen: Table 4
https://codepen.io/fernandojunior/pen/LYyqMRB
● Alterar: CodePen: Table 5
https://codepen.io/fernandojunior/pen/KKmJbGq
● Alterar: CodePen: 
Table 6
Para testar no Navegador:
1. Copiar o exemplo de 
tabela HTML.
2. Criar um novo 
documento em seu 
editor de texto (bloco 
de notas, gedit, 
vscode).
3. Colar o código no 
novo arquivo de texto.
4. Salvar o arquivo com 
o nome table.html.
5. Abrir o arquivo 
table.html com um 
navegador.
https://codepen.io/fernandojunior/pen/WNjPLmp
https://codepen.io/fernandojunior/pen/WNjPLmp
Sugestões:
● HTML Tables
Indo Além
https://www.w3schools.com/html/html_tables.asp
ConclusãoConclusão
O que aprendemos?
Criação básica de tabelas HTML: Cabeçalhos, Linhas, Colunas, Estilo.
02.
01. 03.
04.
Próxima Aula
Formulários HTML
Prática: Criando uma página Web 
com JSON e HTML
Prática Opcional: Criando um 
robô simples de coleta de dados 
com Beautiful Soup
Introdução ao XML/JSON
HTML, XML e JSON
2.1.2. Formulários HTML
Prof. Fernando Felix
Nesta Aula
❑ O que é um formulário HTML?
❑ O Elemento <form>.
❑ Adicionar campos: elementos <label>, <input>, e <textarea>.
❑ Elemento <button>.
❑ Enviar os dados para um servidor web.
❑ Indo Além.
Principal ponto de interação entre um 
usuário e um web site ou aplicativo. 
Permite que os usuários enviem dados 
para um servidor da web, mas a 
página da web também pode usá-los 
por conta própria.
Um formulário HTML é feito de um ou 
mais widgets: campos de texto, caixas 
de seleção, botões, checkboxes ou 
radio buttons.
O que é um formulário?
● Alterar: CodePen: Form 1
https://codepen.io/fernandojunior/pen/eYWXWQX
O atributo for permite 
que o usuário clique na 
legenda (ou rótulo) para 
ativar o campo 
correspondente ao id.
O atributo type define a 
forma como o elemento 
<input> se comporta.
Os elementos <div> 
estão lá para estruturar 
nosso código.
Os elementos <div> 
estão lá para estruturar 
nosso código.
● Alterar: CodePen: Form 2
https://developer.mozilla.org/pt-BR/docs/Web/HTML/Element/Input
https://codepen.io/fernandojunior/pen/xxdBdNb
● Alterar: CodePen: Form 3
https://codepen.io/fernandojunior/pen/oNWVwjz
No lado do servidor, existe um 
código para tratar a URL 
"/pagina-processa-dados-do-form", 
que receberá os dados como uma 
lista de itens 3 chave/valor contidos 
na solicitação HTTP.
O formulário irá enviar 3 
informações "usuario_nome", 
"usuario_email" e "usuario_msg" 
para a URL 
"/pagina-processa-dados-do-form" 
com o método POST HTTP.
● Alterar: CodePen: Form 4
https://codepen.io/fernandojunior/details/RwVdgaZ
1
2
4
3
Sugestões:
● HTML Forms
● HTML Form Attributes
● HTML Form Elements
● HTML Input Types
● HTML Input Attributes
● HTML Input form* Attributes
Indo Além
https://www.w3schools.com/html/html_forms.asp
https://www.w3schools.com/html/html_forms_attributes.asp
https://www.w3schools.com/html/html_form_elements.asp
https://www.w3schools.com/html/html_form_input_types.asphttps://www.w3schools.com/html/html_form_attributes.asp
https://www.w3schools.com/html/html_form_attributes_form.asp
ConclusãoConclusão
O que aprendemos?
Você construiu seu primeiro formulário HTML: form, input, label, 
button.
02.
01. 03.
04.
Próxima Aula
Introdução ao XML/JSON
Prática Opcional: Criando um 
robô simples de coleta de dados 
com Beautiful Soup
Capítulo 3. API e WebServer com 
Python
Prática: Criando uma página Web 
com JSON e HTML
HTML, XML e JSON
2.2. Introdução ao XML/JSON
Prof. Fernando Felix
Nesta Aula
❑ Introdução.
❑ XML: Estrutura Básica.
❑ JSON: Estrutura Básica.
❑ Comparação
Introdução
● JSON: JavaScript Object Notation.
● XML: Extensible Markup Language.
● São usados para enviar/receber 
dados para/de um servidor web.
● JSON é mais popular devido ao 
JavaScript (Browsers).
● XML é usado quando se precisa de 
mais confiabilidade, segurança e 
estabilidade Ex: NF do Brasil, Intercâmbio 
de Dados, SMTP. XML é útil quando 
precisamos deixar o tipo dos 
dados explícito.
https://insights.stackoverflow.com/trends?tags=json%2Cxml%2Ccsv%2Csoap
https://www.nfe.fazenda.gov.br/portal/download.aspx?tipoConteudo=YkoQKwGaI70=
https://esales.com.br/blog/intercambio-eletronico-de-dados-edi/
https://esales.com.br/blog/intercambio-eletronico-de-dados-edi/
https://pt.stackoverflow.com/questions/19423/por-que-e-quando-usar-xml-em-vez-de-json
https://insights.stackoverflow.com/trends?tags=json%2Cxml%2Ccsv%2Csoap
XML: Estrutura Básica
Cabeçalho para que os aplicativos saibam que é um arquivo 
XML.
Tag raiz (root), que marca o início dos registros de usuários.
Tag que marca o início do registro de um usuário.
Tag para finalizar o registro.
Tag para finalizar o arquivo.
Um campo dentro do registro. Todos os campos 
são de texto simples por padrão.
Recomendação da W3C para 
gerar linguagens de marcação 
para necessidades especiais.
Possibilidade de criação de 
tags sem limitação.
JSON: Estrutura Básica
https://www.json.org/json-en.html
https://www.json.org/json-en.html
https://www.json.org/json-en.html
Comparação
https://pt.stackoverflow.com/questions/402686/diferen%C3%A7as-entre-usar-xml-ou-json
https://medium.com/@gabrielpolo/representando-dados-com-xml-ou-json-b3fe5f074d7c
https://pt.stackoverflow.com/questions/402686/diferen%C3%A7as-entre-usar-xml-ou-json
ConclusãoConclusão
O que aprendemos?
● O que é JSON e XML.
● Principais diferenças e casos de uso.
02.
01. 03.
04.
Próxima Aula
Prática: Criando uma página Web 
com JSON e HTML
Capítulo 3. API e WebServer com 
Python
Prática Opcional: Criando um 
robô simples de coleta de dados 
com Beautiful Soup
HTML, XML e JSON
2.3. Prática: Criando uma página Web com JSON e HTML
Prof. Fernando Felix
02.
01. 03.
04.
Próxima Aula
Prática Opcional: Criando um 
robô simples de coleta de dados 
com Beautiful Soup
Capítulo 3. API e WebServer com 
Python
HTML, XML e JSON
2.4. Prática Opcional: Criando um robô simples de coleta de dados com Beautiful Soup
Prof. Fernando Felix
02.
01. 03.
04.
Próxima Aula
Capítulo 3. API e WebServer com 
Python
Web Frameworks
Práticas
Introdução a Web Services e ao 
ao Python WSGI
Python para Aplicações Web
Capítulo 3. API e WebServer com Python
Prof. Fernando Felix
API e WebServer com Python
3.1. Introdução a Web Services: REST vs SOAP APIs
Prof. Fernando Felix
Nesta Aula
❑ Introdução a Web Services.
❑ Fluxo SOAP.
❑ Fluxo REST.
❑ Comparação.
Introdução a Web Services
● Serviço HTTP/Web: Solução
utilizada na integração de sistemas.
● Aplicações que fornecem serviços 
simples podem interagir entre si.
● Se comunicam em uma rede por 
meio de HTTP entre os dois 
sistemas.
● Todos os serviços web são APIs, 
mas nem todas as APIs são 
serviços da web.
https://svitla.com/blog/soap-vs-rest-vs-json
https://testautomationresources.com/api-testing/differences-web-services-api/
Fluxo SOAP
Simple Object Access Protocol
● XML.
● Adotado pelo W3C.
● Estrutura extensível de 
mensagens.
● Mensagem via HTTP ou SMTP.
WSDL: Web Services Description Language
https://www.researchgate.net/publication/327054573_SSOAM_Automated_Security_Testing_Framework_for_SOA_Middleware_in_Banking_Domain
https://www.c-sharpcorner.com/article/calling-web-service-using-soap-request/
https://www.reply.com/solidsoft-reply/en/content/webservices-soap-and-rest-a-simple-introduction
Fluxo REST
Representational state transfer
● Geralmente, JSON.
● Arquitetura de software (conjunto 
coordenado de restrições).
● Transações aproveitam o 
protocolo HTTP (POST, GET, 
DELETE etc.).
● Stateless.
https://devdotcode.com/what-is-restful-api/
Comparação
http://tieprojetos.com.br/2016/11/03/rest-vs-soap/
https://jelvix.com/blog/rest-vs-soap
https://www.slideshare.net/JeisonBarros1/o-bsico-do-uso-de-rest-vs-soap
ConclusãoConclusão
O que aprendemos?
● Conhecemos melhor o que é Web Service ou Web API.
● Principais características de um Web Service Soap e Rest.
02.
01. 03.
04.
Próxima Aula
Introdução ao Python WSGI (Web 
Server Gateway Interface)
Prática: Criando uma página Web 
com HTML e uma Web API
Prática Opcional: Criando um 
servidor HTTP simples com 
Python
Web Frameworks
API e WebServer com Python
3.2. Introdução ao Python WSGI (Web Server Gateway Interface)
Prof. Fernando Felix
Nesta Aula
❑ Aplicações Web em Python.
❑ Objetivos do WSGI.
● Um Servidor web tradicional não entende código Python.
● Uma aplicação Web em Python em produção possui:
○ Servidor Web: Hospeda arquivos estáticos (HTML, CSS, JS) e recebe conexões HTTP.
○ Servidor WSGI: Invoca processos/instâncias de Aplicação Web e distribui carga.
○ Aplicação Web: Aplicação usando um framework web (páginas dinâmicas, APIs).
Aplicações Web em Python
Web Server
WSGI App
www.example.com/landpage.html
www.example.com/style.css
www.example.com/login
www.example.com/products/<id>
https://ai.plainenglish.io/machine-learning-on-akash-decloud-part-3-3-deploying-a-deep-learning-web-application-6a9e71e71dd1
https://medium.com/@nhudinhtuan/gunicorn-worker-types-practice-advice-for-better-performance-7a299bb8f929
https://medium.com/@nhudinhtuan/gunicorn-worker-types-practice-advice-for-better-performance-7a299bb8f929
● Web Server Gateway Interface ~ “Porta de Entrada do Servidor Web”.
● Por que usar WSGI e não apenas apontar um servidor Web para um app?
○ Flexibilidade (PEP 3333): Um desenvolvedor pode mudar de Unicorn para uWSGI 
sem modificar uma aplicação que implementa WSGI.
○ Dimensionamento: Atender milhares de requisições de conteúdo dinâmico de uma 
vez é a responsabilidade dos servidores WSGI.
Objetivos do WSGI
https://www.python.org/dev/peps/pep-3333/
https://www.fullstackpython.com/wsgi-servers.html
ConclusãoConclusão
O que aprendemos?
● Como funciona a arquitetura de aplicações Web em produção.
● Principais vantagens de usar o WSGI.
02.
01. 03.
04.
Próxima Aula
Web Frameworks
Prática Opcional: Criando um 
servidor HTTP simples com 
Python
Capítulo 4. Introdução ao Flask
Prática: Criando uma página Web 
com HTML e uma Web API
API e WebServer com Python
3.3. Web Frameworks
Prof. Fernando Felix
Nesta Aula
❑ O que é um Framework?
❑ O que é um Framework Web?
❑ Web Frameworks em Python.
❑ Outros Web Frameworks em Python.
❑ Comparações.
O que é um Framework?
Uma série de códigos prontos que 
oferecem alguma funcionalidade 
específica. Possuem lacunas que devem 
ser preenchidas pelo desenvolvedor para 
funcionar conforme sua necessidade.
https://pt.stackoverflow.com/questions/17501/qual-%C3%A9-a-diferen%C3%A7a-de-api-biblioteca-e-framework
https://www.oreilly.com/library/view/software-architecture-patterns/9781491971437/ch01.html
https://www.sciencedirect.com/science/article/abs/pii/S0164121220302363
O que é um Web Framework?
Construir Aplicações Web. Fornecem 
bibliotecas para acessar banco de dados, 
templates HTML, gerenciamento de login 
etc. Visam o desenvolvimento de sites 
dinâmicos ou Web APIs, mas tambémsão 
aplicáveis a sites estáticos.
Stackoverflow Survey 2020 - Top Web Frameworks
https://insights.stackoverflow.com/survey/2020#technology-web-frameworks
Web Frameworks em Python
Top Python Web Frameworks, 2021, Github stars Jetbrains Survey 2020 - Top Python Web 
Frameworks
https://gustavwillig.medium.com/python-web-development-in-2021-which-web-frameworks-are-the-most-popular-by-github-stars-e07b1d7ef6f7
https://www.jetbrains.com/lp/python-developers-survey-2020/
Outros Web Frameworks em Python
https://canaltech.com.br/inovacao/startup-de-veteranos-do-google-lanca-ferramenta-gratis-de-aprendizado-de-maquina-151291/
https://databricks.com/blog/2020/06/25/announcing-mlflow-model-serving-on-databricks.html
https://sanicframework.org/en/guide/#what-is-it
https://streamlit.io/
Comparações
https://www.techempower.com/benchmarks/#section=data-r20&hw=ph&test=fortune&l=zijzen-sf
https://www.techempower.com/benchmarks/#section=data-r20&hw=ph&test=fortune&l=zijzen-sf
https://www.techempower.com/benchmarks/
ConclusãoConclusão
O que aprendemos?
● O que são Web frameworks.
● Frameworks mais usados no mercado.
● Frameworks com melhores desempenhos.
02.
01. 03.
04.
Próxima Aula
Prática: Criando uma página Web 
com HTML e uma Web API
Capítulo 4. Introdução ao Flask
Prática Opcional: Criando um 
servidor HTTP simples com 
Python
API e WebServer com Python
3.4. Prática: Criando uma página Web com HTML e uma Web API
Prof. Fernando Felix
02.
01. 03.
04.
Próxima Aula
Prática Opcional: Criando um 
servidor HTTP simples com 
Python
Capítulo 4. Introdução ao Flask
API e WebServer com Python
3.5. Prática Opcional: Criando um servidor HTTP simples com Python
Prof. Fernando Felix
02.
01. 03.
04.
Próxima Aula
Capítulo 4. Introdução ao Flask
Prática: Criando uma Aplicação 
Web de TODO List com Flask
Introdução ao DjangoGuia Rápido para Iniciantes
Python para Aplicações Web
Capítulo 4. Introdução ao Flask
Prof. Fernando Felix
Introdução ao Flask
4.1. Guia Rápido para Iniciantes
Prof. Fernando Felix
Nesta Aula
❑ Características.
❑ Instalação.
❑ Aplicação Mínima.
❑ Modo de depuração.
❑ HTML Escaping.
❑ URL Dinâmica.
❑ Métodos HTTP.
❑ Templates.
❑ Dados de Requisição.
● Micro-framework - Lego-Like.
● Depurador e servidor integrados 
(para testes).
● Suporte a testes unitários.
● Plug-in para ORM (base de dados).
● Compatível com WSGI.
● Envio/recebimento de requisições 
REST.
● Mais usado para criação de REST 
APIs.
● Construção de aplicações web 
robustas.
Características
Instalação
Aplicação Mínima
● Importar classe Flask.
● Criar instância da classe.
● Usar o route() para dizer qual 
URL endpoint deve acionar a 
função hello_world.
● Executar aplicativo no terminal
○ WSGI para dev/testes.
● Abrir http://127.0.0.1:5000/
http://127.0.0.1:5000/
Modo de depuração
FLASK_ENV=development flask run
HTML Escaping
HTML Escaping
Regras de Variáveis
URL Dinâmica
● Mais descritivo do que codificar URLs.
● Podemos alterar URLs de uma vez, em 
vez alterar manualmente as URLs.
● URLs geradas são sempre absolutas:
○ Evita comportamento inesperado de 
caminhos relativos.
Métodos HTTP
Renderizado via 
show_the_login_form, 
método GET
Renderizado via 
do_the_login, método POST
Templates
Jinja2
Escape automático 
está habilitado.
https://jinja.palletsprojects.com/en/3.0.x/templates/
Dados de Requisição
Dados de Requisição / JSON
ConclusãoConclusão
O que aprendemos?
● Como é simples criar aplicações com Flask.
● Principais funcionalidades.
Extra:
● Templates com Jinja2
● Upload de arquivos
● Cookies
● Redirects e errors
● Sessões
● Logging
● Flask extensions
● Blueprints
https://jinja.palletsprojects.com/en/3.0.x/templates/
https://flask.palletsprojects.com/en/2.0.x/quickstart/#file-uploads
https://flask.palletsprojects.com/en/2.0.x/quickstart/#cookies
https://flask.palletsprojects.com/en/2.0.x/quickstart/#redirects-and-errors
https://flask.palletsprojects.com/en/2.0.x/quickstart/#sessions
https://flask.palletsprojects.com/en/2.0.x/quickstart/#logging
https://flask.palletsprojects.com/en/2.0.x/quickstart/#using-flask-extensions
https://flask.palletsprojects.com/en/2.0.x/blueprints
02.
01. 03.
04.
Próxima Aula
Prática: Criando uma Aplicação 
Web de TODO List com Flask
Capítulo 5. Introdução ao Django
Introdução ao Flask
4.2. Prática: Criando uma Aplicação Web de TODO List com Flask
Prof. Fernando Felix
02.
01. 03.
04.
Próxima Aula
Capítulo 5. Introdução ao Django
Prática: Criando uma Aplicação 
Web de TODO List com Django
Guia Rápido para Iniciantes
Python para Aplicações Web
Capítulo 5. Introdução ao Django
Prof. Fernando Felix
Introdução ao Django
5.1. Guia Rápido para Iniciantes
Prof. Fernando Felix
Nesta Aula
❑ Características.
❑ Django Tutorial.
❑ Instalação.
❑ Estrutura: Projeto.
❑ Estrutura: Micro Aplicação.
❑ Aplicação Mínima.
❑ Criação de Modelo de dados.
❑ Django Admin.
● Abordagem pragmática: DRY
○ Don't Repeat Yourself.
○ Reutilização de componentes.
● Baterias inclusas - muitas 
bibliotecas.
● Roteamento de URL.
● Templates e Formulários.
● Módulo de autenticação.
● ORM nativo.
● Entrega rápida (MVPs).
● Geralmente, aplicativos 
monolíticos.
● Suporte a REST via plugin.
Características
https://pythonacademy.com.br/blog/desenvolvimento-web-com-python-e-django-introducao
https://pythonacademy.com.br/blog/desenvolvimento-web-com-python-e-django-introducao
https://pythonacademy.com.br/blog/desenvolvimento-web-com-python-e-django-introducao
Django Tutorial
https://docs.djangoproject.com/en/3.2/contents/
https://docs.djangoproject.com/en/3.2/contents/
Django Tutorial
https://github.com/fernandojunior/django-tutorial
https://github.com/fernandojunior/django-tutorial
https://github.com/AnniePawl/Django-Poll-App
https://github.com/AnniePawl/Django-Poll-App
Instalação
Estrutura: Projeto
● manage.py: Utilitário de linha de comando 
(Ex.: iniciar servidor, criar micro apps etc.).
● __init__.py: Arquivo em branco para tratar o 
diretório como um pacote.
● settings.py: Contém as definições do website. 
Registramos aplicações, local de arquivos 
estáticos, configurações de banco de dados 
etc.
● urls.py: Mapeamentos de URL para 
visualização do site.
● wsgi.py: Ajuda na comunicação entre a 
aplicação principal e o Web server.
Estrutura: Micro Aplicação
Cada novo pacote é tratado como uma micro 
aplicação. Cada arquivo tem seu propósito.
● Configurações de administração (superuser) do 
site em admin.py.
● Definições de visões (conteúdo das urls) devem 
ser armazenadas em views.py.
● Entidades e regras de negócio em models.py.
● Casos de testes em tests.py.
● Configuração da aplicação em apps.py.
Estrutura: Micro Aplicação
● Arquivos estáticos como imagens e estilos em static/
● Template de páginas HTML em templates/
● Códigos para versionamento de base de dados em 
migrations/
Aplicação Mínima
Criação de Modelo de dados
Django Admin
ConclusãoConclusão
O que aprendemos?
● Principais características do Django.
● Estrutura básica de um projeto e aplicação.
● Como funciona o mapeamento de modelo de dados.
● Django possui uma interface de administração.
02.
01. 03.
04.
Próxima Aula
Prática: Criando uma Aplicação 
Web de TODO List com Django
Introdução ao Django
5.2. Prática: Criando uma Aplicação Web de TODO List com Django
Prof. Fernando Felix
02.
01. 03.
04.
Próxima Aula
https://github.com/fernandojunior/igti-flask-todo-app 
https://github.com/fernandojunior/igti-django-todo-app 
Fim!
https://www.linkedin.com/in/fernandofnjr/ 
https://github.com/fernandojunior/igti-flask-todo-app
https://github.com/fernandojunior/igti-django-todo-app
https://www.linkedin.com/in/fernandofnjr/

Mais conteúdos dessa disciplina