SlideShare uma empresa Scribd logo
1 de 35
Introdução ao Flask
Um microframework web feito em Python
Cleyson Lima
Estudante de Licenciatura em Informática pelo IFPI - Campus Zona Sul e pythonista
Website: https://cleysonph.github.io/
Autobele Silva
Estudante de Licenciatura em Informática pelo IFPI - Campus Zona Sul
Website: https://autobele.github.io/
wls057l
Código da turma no Google Classroom
O que é Flask?
“Flask is a lightweight WSGI web application framework. It is
designed to make getting started quick and easy, with the ability
to scale up to complex applications. It began as a simple wrapper
around Werkzeug and Jinja and has become one of the most
popular Python web application frameworks.” - Documentação
Flask
Criador da Framework - Armin Ronacher
Senta que lá vem história
● Popularização das microframeworks
● Microframeworks de um único arquivo .py
● Brincadeira de 01 de Abril de 2010
● Projeto DENIED
● As coisas saíram do controle
● Post do Armin sobre a brincadeira
● Dia 06 de Abril de 2010 primeiro commit do Flask
Características
● Open Source
● Simples
● Design Patterns “Aberto”
● Extensível
Quem usa?
O protocolo HTTP
● Cliente x Servidor
● DNS lookup
● Request e Response
● Métodos GET e POST
● Códigos de resposta
○ 200 OK
○ 301 Redirecionamento
○ 404 Não Encontrado
○ 500 Erro Interno no Servidor
● Front End e Back End
Preparação do Ambiente
1. Criar pasta do projeto
2. Entrar na pasta
3. Criar ambiente virtual e instalar o Flask
4. Iniciar o ambiente virtual
Mãos à obra - Hello World em Flask
1º - Crie um arquivo chamado app.py 2º - Execute estes comandos no terminal
3º - Acesse o seu site em http://localhost:5000
Rotas
● Rotas Estáticas
● Rotas Dinâmicas
Retornando HTML
● Através de uma String simples
Retornando HTML
● Como retornar páginas HTML mais complexas?
● Jinja2
● Como usar?
Jinja2
1º Crie um arquivo chamado app.py
2º Crie um pasta com o nome “templates”
3ª Crie um arquivo dentro da pasta “templates” chamado “usuario.html”
Formulários no Flask
1ª Crie um arquivo dentro da pasta “templates” chamado “form.html”
Formulários no Flask
2º Adicione a importação do objeto “request”
3º Adicione a rota “/form” no seu aquivo app.py
Banco de Dados
● Dados tabulados
● Modelo Relacional
● SQL
id nickname nivel vida mana ataque
1 Darkblade 1 100 30 5
2 Momonga 99 999999 999999 999999
3 VonVigorous 30 5672 1930 130
4 V1609Pl0u5 15 2110 250 40
Banco de Dados
● SQL - Create Table
Banco de Dados
● SQL - SELECT
nickname nivel vida
Darkblade 1 100
Momonga 99 999999
VonVigorous 30 5672
V1609Pl0u5 15 2110
Banco de Dados
● SQL - INSERT
Banco de Dados
● SQL - UPDATE
Banco de Dados
● SQL - DELETE
SQL e Python
ORM’s
● Problemática de usar SQL
○ QUERY’s em strings diretamente no código
○ Aplicação acoplada ao banco de dados
● Como transformar código Python em SQL
● Mapeamento Objeto Relacional
● SqlAlchemy
ORM - Create Table
ORM - SELECT
ORM - INSERT
ORM - UPDATE
ORM - DELETE
ORM no Flask
● Extensões Flask
● Flask-SQLAlchemy
● Instalação - pipenv install Flask-SqlAlchemy
● Configurar Flask-SQLAlchemy
ORM no Flask
Introdução ao Flask e seus principais recursos

Mais conteúdo relacionado

Mais procurados

HTML5 Básico: Formulários (aula 2)
HTML5 Básico: Formulários (aula 2)HTML5 Básico: Formulários (aula 2)
HTML5 Básico: Formulários (aula 2)Gustavo Zimmermann
 
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
 
Introdução ao desenvolvimento Web
Introdução ao desenvolvimento WebIntrodução ao desenvolvimento Web
Introdução ao desenvolvimento WebSérgio Souza Costa
 
Growing as a PM in the Course of Your Career by Google PM Director
Growing as a PM in the Course of Your Career by Google PM DirectorGrowing as a PM in the Course of Your Career by Google PM Director
Growing as a PM in the Course of Your Career by Google PM DirectorProduct School
 
{Palestra} Criação Web com Frameworks Front-end
{Palestra} Criação Web com Frameworks Front-end{Palestra} Criação Web com Frameworks Front-end
{Palestra} Criação Web com Frameworks Front-endDaniel Brandão
 
Sprint Lab baseado no Google Design Sprint
Sprint Lab baseado no Google Design SprintSprint Lab baseado no Google Design Sprint
Sprint Lab baseado no Google Design SprintHeller de Paula
 
Tutorial - Google Drive
Tutorial - Google DriveTutorial - Google Drive
Tutorial - Google DriveEdumóvel
 
Mecanismos de buscas na internet
Mecanismos de buscas na internetMecanismos de buscas na internet
Mecanismos de buscas na internetBeth Paes
 
Curso HTML, CSS e JavaScript
Curso HTML, CSS e JavaScriptCurso HTML, CSS e JavaScript
Curso HTML, CSS e JavaScriptPablo Sanches
 
Aula05 - Metodologias Ágeis
Aula05 - Metodologias ÁgeisAula05 - Metodologias Ágeis
Aula05 - Metodologias ÁgeisDaniela Brauner
 
Gerenciamento de projetos - Iniciação
Gerenciamento de projetos - IniciaçãoGerenciamento de projetos - Iniciação
Gerenciamento de projetos - IniciaçãoPaulo Junior
 
Aula - Introdução a Engenharia de Software
Aula - Introdução a Engenharia de SoftwareAula - Introdução a Engenharia de Software
Aula - Introdução a Engenharia de SoftwareCloves da Rocha
 

Mais procurados (20)

HTML5 Básico: Formulários (aula 2)
HTML5 Básico: Formulários (aula 2)HTML5 Básico: Formulários (aula 2)
HTML5 Básico: Formulários (aula 2)
 
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
 
Introdução a gerenciamento de projetos e PMBoK®
Introdução a gerenciamento de projetos e PMBoK®Introdução a gerenciamento de projetos e PMBoK®
Introdução a gerenciamento de projetos e PMBoK®
 
Introdução ao desenvolvimento Web
Introdução ao desenvolvimento WebIntrodução ao desenvolvimento Web
Introdução ao desenvolvimento Web
 
Atividade prática slides
Atividade prática slidesAtividade prática slides
Atividade prática slides
 
Flutter do zero a publicacao
Flutter do zero a publicacaoFlutter do zero a publicacao
Flutter do zero a publicacao
 
Growing as a PM in the Course of Your Career by Google PM Director
Growing as a PM in the Course of Your Career by Google PM DirectorGrowing as a PM in the Course of Your Career by Google PM Director
Growing as a PM in the Course of Your Career by Google PM Director
 
{Palestra} Criação Web com Frameworks Front-end
{Palestra} Criação Web com Frameworks Front-end{Palestra} Criação Web com Frameworks Front-end
{Palestra} Criação Web com Frameworks Front-end
 
Use a Cabeça - PHP.pdf
Use a Cabeça - PHP.pdfUse a Cabeça - PHP.pdf
Use a Cabeça - PHP.pdf
 
Gestão de Projetos
Gestão de ProjetosGestão de Projetos
Gestão de Projetos
 
Sprint Lab baseado no Google Design Sprint
Sprint Lab baseado no Google Design SprintSprint Lab baseado no Google Design Sprint
Sprint Lab baseado no Google Design Sprint
 
Tutorial - Google Drive
Tutorial - Google DriveTutorial - Google Drive
Tutorial - Google Drive
 
Front End x Back End
Front End x Back EndFront End x Back End
Front End x Back End
 
Mecanismos de buscas na internet
Mecanismos de buscas na internetMecanismos de buscas na internet
Mecanismos de buscas na internet
 
Curso HTML, CSS e JavaScript
Curso HTML, CSS e JavaScriptCurso HTML, CSS e JavaScript
Curso HTML, CSS e JavaScript
 
Engenharia de software - Prototipo
Engenharia de software - PrototipoEngenharia de software - Prototipo
Engenharia de software - Prototipo
 
Curso de Desenvolvimento Web - Módulo 02 - CSS
Curso de Desenvolvimento Web - Módulo 02 - CSSCurso de Desenvolvimento Web - Módulo 02 - CSS
Curso de Desenvolvimento Web - Módulo 02 - CSS
 
Aula05 - Metodologias Ágeis
Aula05 - Metodologias ÁgeisAula05 - Metodologias Ágeis
Aula05 - Metodologias Ágeis
 
Gerenciamento de projetos - Iniciação
Gerenciamento de projetos - IniciaçãoGerenciamento de projetos - Iniciação
Gerenciamento de projetos - Iniciação
 
Aula - Introdução a Engenharia de Software
Aula - Introdução a Engenharia de SoftwareAula - Introdução a Engenharia de Software
Aula - Introdução a Engenharia de Software
 

Semelhante a Introdução ao Flask e seus principais recursos

PHP RESTful Web Services - PHPConf'09
PHP RESTful Web Services - PHPConf'09PHP RESTful Web Services - PHPConf'09
PHP RESTful Web Services - PHPConf'09Felipe Ribeiro
 
Apresentação do Oraculum Framework (PHP)
Apresentação do Oraculum Framework (PHP)Apresentação do Oraculum Framework (PHP)
Apresentação do Oraculum Framework (PHP)Patrick Kaminski
 
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
 
Trabalhando de forma profissional com silex
Trabalhando de forma profissional com silexTrabalhando de forma profissional com silex
Trabalhando de forma profissional com silexMichael Douglas
 
Desenvolvendo aplicativos para Firefox OS
Desenvolvendo aplicativos para Firefox OSDesenvolvendo aplicativos para Firefox OS
Desenvolvendo aplicativos para Firefox OSJonathan Lamim
 
Django - Desenvolvimento web ágil com Python
Django - Desenvolvimento web ágil com PythonDjango - Desenvolvimento web ágil com Python
Django - Desenvolvimento web ágil com PythonIgor Sobreira
 
Frameworks de Desenvolvimento Web com PHP
Frameworks de Desenvolvimento Web com PHPFrameworks de Desenvolvimento Web com PHP
Frameworks de Desenvolvimento Web com PHPElton Minetto
 
Técnicas e recursos para desenvolvimento Web em cenários de grande escala
Técnicas e recursos para desenvolvimento Web em cenários de grande escalaTécnicas e recursos para desenvolvimento Web em cenários de grande escala
Técnicas e recursos para desenvolvimento Web em cenários de grande escalaAlexandre Tarifa
 
(A04 e A05) LabMM3 - JavaScript
(A04 e A05) LabMM3 - JavaScript(A04 e A05) LabMM3 - JavaScript
(A04 e A05) LabMM3 - JavaScriptCarlos Santos
 
Introdução à Programação Web com Angular
Introdução à Programação Web com AngularIntrodução à Programação Web com Angular
Introdução à Programação Web com AngularElmano Cavalcanti
 
Tchelinux live 2020 - Detectando e Respondendo Incidentes de Segurança em Fro...
Tchelinux live 2020 - Detectando e Respondendo Incidentes de Segurança em Fro...Tchelinux live 2020 - Detectando e Respondendo Incidentes de Segurança em Fro...
Tchelinux live 2020 - Detectando e Respondendo Incidentes de Segurança em Fro...Jeronimo Zucco
 
Aprendendo Na Prática: Aplicativos Web com HTML5, Angular.js, Twitter Bootstr...
Aprendendo Na Prática: Aplicativos Web com HTML5, Angular.js, Twitter Bootstr...Aprendendo Na Prática: Aplicativos Web com HTML5, Angular.js, Twitter Bootstr...
Aprendendo Na Prática: Aplicativos Web com HTML5, Angular.js, Twitter Bootstr...Daniel Makiyama
 
Plone: O CMS da moda? - Consegi 2013
Plone: O CMS da moda? - Consegi 2013Plone: O CMS da moda? - Consegi 2013
Plone: O CMS da moda? - Consegi 2013Tania Andrea
 
Apache Flink a Quarta Geração do Big Data
Apache Flink a Quarta Geração do Big DataApache Flink a Quarta Geração do Big Data
Apache Flink a Quarta Geração do Big DataAmbiente Livre
 

Semelhante a Introdução ao Flask e seus principais recursos (20)

PHP RESTful Web Services - PHPConf'09
PHP RESTful Web Services - PHPConf'09PHP RESTful Web Services - PHPConf'09
PHP RESTful Web Services - PHPConf'09
 
Apresentação do Oraculum Framework (PHP)
Apresentação do Oraculum Framework (PHP)Apresentação do Oraculum Framework (PHP)
Apresentação do Oraculum Framework (PHP)
 
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
 
Web Tools Pt Br
Web Tools Pt BrWeb Tools Pt Br
Web Tools Pt Br
 
Trabalhando de forma profissional com silex
Trabalhando de forma profissional com silexTrabalhando de forma profissional com silex
Trabalhando de forma profissional com silex
 
Desenvolvendo aplicativos para Firefox OS
Desenvolvendo aplicativos para Firefox OSDesenvolvendo aplicativos para Firefox OS
Desenvolvendo aplicativos para Firefox OS
 
Search Plugins para Firefox
Search Plugins para FirefoxSearch Plugins para Firefox
Search Plugins para Firefox
 
Django - Desenvolvimento web ágil com Python
Django - Desenvolvimento web ágil com PythonDjango - Desenvolvimento web ágil com Python
Django - Desenvolvimento web ágil com Python
 
Python Zope Plone - Ftec
Python Zope Plone - FtecPython Zope Plone - Ftec
Python Zope Plone - Ftec
 
Web tools pt-br
Web tools pt-brWeb tools pt-br
Web tools pt-br
 
Entity framework
Entity frameworkEntity framework
Entity framework
 
W2py pyconpe
W2py pyconpeW2py pyconpe
W2py pyconpe
 
Frameworks de Desenvolvimento Web com PHP
Frameworks de Desenvolvimento Web com PHPFrameworks de Desenvolvimento Web com PHP
Frameworks de Desenvolvimento Web com PHP
 
Técnicas e recursos para desenvolvimento Web em cenários de grande escala
Técnicas e recursos para desenvolvimento Web em cenários de grande escalaTécnicas e recursos para desenvolvimento Web em cenários de grande escala
Técnicas e recursos para desenvolvimento Web em cenários de grande escala
 
(A04 e A05) LabMM3 - JavaScript
(A04 e A05) LabMM3 - JavaScript(A04 e A05) LabMM3 - JavaScript
(A04 e A05) LabMM3 - JavaScript
 
Introdução à Programação Web com Angular
Introdução à Programação Web com AngularIntrodução à Programação Web com Angular
Introdução à Programação Web com Angular
 
Tchelinux live 2020 - Detectando e Respondendo Incidentes de Segurança em Fro...
Tchelinux live 2020 - Detectando e Respondendo Incidentes de Segurança em Fro...Tchelinux live 2020 - Detectando e Respondendo Incidentes de Segurança em Fro...
Tchelinux live 2020 - Detectando e Respondendo Incidentes de Segurança em Fro...
 
Aprendendo Na Prática: Aplicativos Web com HTML5, Angular.js, Twitter Bootstr...
Aprendendo Na Prática: Aplicativos Web com HTML5, Angular.js, Twitter Bootstr...Aprendendo Na Prática: Aplicativos Web com HTML5, Angular.js, Twitter Bootstr...
Aprendendo Na Prática: Aplicativos Web com HTML5, Angular.js, Twitter Bootstr...
 
Plone: O CMS da moda? - Consegi 2013
Plone: O CMS da moda? - Consegi 2013Plone: O CMS da moda? - Consegi 2013
Plone: O CMS da moda? - Consegi 2013
 
Apache Flink a Quarta Geração do Big Data
Apache Flink a Quarta Geração do Big DataApache Flink a Quarta Geração do Big Data
Apache Flink a Quarta Geração do Big Data
 

Introdução ao Flask e seus principais recursos