Primeiras aulas do curso Flask: crie uma webapp com Python

Flask: crie uma webapp com Python

Criando uma aplicação web super rápido - Apresentação

Seja bem-vindo(a) ao curso de Flask: crie uma webapp com Python, meu nome é Bruno Divino, faço parte do time de instrutores aqui da Alura e eu vou acompanhar você nessa sua jornada de aprendizagem a respeito do microframework de desenvolvimento web Flask.

Então, você vai aprender tudo que precisa saber a respeito do Flask e como colocar uma aplicação web no ar de forma rápida e eficiente através de um projeto que vamos desenvolver juntos.

Então vai ser um website chamado o Jogoteca, em que vamos colocar uma lista de jogos que podemos adicionar, logar, mas tudo isso vamos ver com calma, então não vou dar mais spoilers, vamos ver daqui a pouco.

Deixa eu falar um pouco então dos pré-requisitos para fazer esse curso, é interessante que você tenha conhecimentos a respeito do protocolo HTTP, então principalmente os métodos, post e get, que vamos utilizar bastante.

É interessante também que você tenha conhecimento a respeito de orientação a objetos em Python, então aquele paradigma que usamos bastante na linguagem e que é legal de sabermos para fazer esse curso.

E precisamos também saber um pouco de HTML e CSS, ter uma base, porque vamos trabalhar com aplicações web, vamos trabalhar com estruturação do site e um pouco com a estilização dele também, então é interessante ter uma base.

A boa notícia é que todos esses conteúdos têm na nossa plataforma da Alura, então, tem cursos a respeito dessas temáticas. Basta você ir lá na página principal aqui desse curso, subir lá, scrollar lá para cima, no canto direito superior que vai ter uma lista de links para os cursos a respeito dessas temáticas e você pode ir lá dar uma checada, ver como que é a coisa e se você já tem conhecimento a respeito dessas temáticas, então você já está pronto e já podemos seguir. Então vamos começar finalmente, se acomoda, pega uma água e vamos lá!

Criando uma aplicação web super rápido - O que é Flask?

Você pode acessar a documentação do Flask usada para a explicação dessa aula neste link

Antes de colocarmos a mão na massa, antes de adentrarmos realmente no projeto, vamos dar uma contextualizada, vamos ver o que que é o Flask de fato, da onde que ele surgiu, o que é essa coisa de ser um microframework.

Então vamos lá, o Flask é um framework que foi lançado em 2010, ele é de código aberto, e foi feito pelo desenvolvedor Armin Ronacher com um objetivo muito modesto na verdade, muito simples, bem direto ao ponto, que é ser um framework capaz de colocar uma aplicação web de forma rápida e eficiente.

E quais são as suas principais características? Tanto naquela época quanto ainda hoje, é a sua simplicidade, a sua rapidez e a sua eficiência. Eu já meio que dei a dica. E eu tenho que chamar atenção para a simplicidade, a simplicidade é muito importante porque ela eleva as outras, ela eleva a sua rapidez de execução de código e a sua eficiência principalmente em aplicações menores.

Aplicações menores, simplicidade, será então que o Flask é um framework que só funciona para aplicações menores? Será que ele deixa a desejar se comparado a outros frameworks porque ele é muito simples? Não, não exatamente, não mesmo na verdade.

A simplicidade dele é dado o fato de que quando ele estava sendo desenvolvido, a intenção era criar um núcleo do Flask que só tivesse as bibliotecas essenciais para se colocar uma aplicação no ar.

Então, vamos imaginar que o Flask seja uma peça de lego, o núcleo do Flask seja uma peça de lego. Então se colocaram as bibliotecas essenciais para se colocar uma aplicação web no ar, para se configurar, desenvolver uma aplicação web, que é a Jinja e Werkzeug, e fizeram ele de uma forma que ele fosse extensível, que fosse capaz de outros blocos se conectarem a ele, conforme o desenvolvedor ficasse interessado, conforme o projeto demandasse.

Então se o desenvolvedor precisa conectar uma biblioteca que seja capaz de fazer uma conexão com banco de dados, ou que seja capaz de fazer o envio de e-mails, então o desenvolvedor teria a capacidade de conectar isso, estender isso ao núcleo do Flask.

Mas isso é uma vantagem? Isso é uma vantagem, ele dá duas grandes vantagens ao desenvolvedor.

A primeira é que o desenvolvedor tem mais controle a respeito do framework dele, sabe exatamente o que tem no framework, ele sabe que tem o essencial, que é aquilo que já vem no núcleo do Flask, e sabe que tem as bibliotecas que ele precisa para fazer a aplicação dele acontecer, essa coisa do banco de dados, a biblioteca do banco de dados, a biblioteca do e-mail, várias outras, então ele vai colocando na medida que ele tem a necessidade, isso dá um controle maior para ele do que é o framework, do que está sendo.

E sem falar que também como não tem código extra, código que não está sendo usado ali dentro, isso faz com que o framework acaba ficando mais leve e a execução acaba sendo mais rápida, então essas são duas grandes vantagens do Flask.

E por que que ele é um microframework, ele é considerado um microframework? Justamente por causa dessa característica dele, do núcleo ter apenas o essencial para se colocar as coisas no ar, enquanto a maioria dos frameworks já tem coisas embutidas, o Flask ele só tem o essencial e pode daí sim acoplar coisas estendidas nele, as bibliotecas estendidas, então isso que faz dele microframework, então tem que colocar até a entre aspas isso.

E isso dá uma grande vantagem, e isso faz dele um dos melhores frameworks do Python, e eu acho que existe no mercado também, e um grande competidor também.

Para finalizar aqui então, vou mostrar então um pouco do site do Flask, documentação do Flask, eu estou aqui no site do Flask aqui contém a documentação dele, o que é uma coisa muito importante para qualquer desenvolvedor que está iniciando, você ficar em constante contato com a documentação da tecnologia que você está utilizando, porque ela pode ter muitas respostas para muitas das suas dúvidas.

Vamos desenvolver um projeto ao decorrer do curso, e é interessante que conforme você vai fazendo o projeto, e vai querendo entender um pouco mais sobre determinado conceitos ali do código, eu vou explicando mais ao longo do curso, mas é interessante que você saiba que exista essa página, que exista essa documentação e que ela pode tirar muitas das suas dúvidas e não apenas tirar suas dúvidas mas te inspirar a fazer várias outras questões, tem modelos, exemplos e estruturas aqui do Flask que ele te ensina como usar.

Então no próximo vídeo já vamos começar colocando a mão na massa, começar a fazer o projeto de fato, te vejo lá!

Criando uma aplicação web super rápido - A primeira aplicação

Então vamos começar aqui finalmente com nosso projeto. Nosso projeto vai ser um site chamado Jogoteca, uma aplicação chamada Jogoteca, e vai se tratar de um site que exibe lista de jogos, então vai exibir lá nome do jogo, a plataforma o qual o jogo pertence, o console o qual o jogo pertence, vai possibilitar também que cadastremos novos jogos e que façamos login, e só quem tiver login vai conseguir acessar as páginas de lista de jogos de criar um novo jogo.

Então vamos ter um sistema de restringir acesso, que vai ser bem interessante, vamos conseguir cadastrar os jogos a partir do próprio site, ele instala os jogos, vai ser bem interessante.

Mas antes de começar vamos lembrar como que funciona a web, vamos lembrar todas as questões a cerca do protocolo HTTP, então como que funciona? Temos um navegador, e na barra de endereço do navegador colocamos o endereço do site e acessamos o site, mas como que isso funciona?

Basicamente temos o servidor que é aonde fica as informações do site propriamente dito, e o que acontece é que o nosso navegador faz uma requisição uma request, para o servidor para ele liberar as informações a respeito daquele site para o nosso no navegador e liberar o acesso para nós.

E o servidor responde isso com uma response e a partir daí temos acesso ao site, mas que que isso tem a ver? Você vai ver que no nosso caso aqui quem vai fazer o papel do servidor, vai ser o Flask, então momentaneamente vamos ter o Flask, framework Flask, como o servidor.

Vamos começar o projeto de fato, deixa eu acessar aqui o Pycharm, que vai ser a IDE que vamos utilizar e eu vou vir aqui na barra superior em novo projeto na parte superior da tela, “New Project”, em "Location" vou digitar Jogoteca, vou esperar ele criar, ele está criando um ambiente virtual para fazermos isso, isso é a vantagem do Pycharm, já cria um ambiente virtual para fazermos tudo certo, e ele já dá esse arquivo “main.py” para nós, só que não vamos usar, vamos criar o nosso próprio, então eu vou clicar em cima dele com o botão direito do mouse e escolher e opção "Delete" para deletar e em seguida "Ok".

E daí eu vou criar um novo arquivo.py que é aonde vamos deixar o projeto mesmo. Vou clicar aqui na lateral esquerda em cima da pasta do projeto e criar um novo arquivo Python selecionando "New" e depois "Python gile" e digitar “jogoteca” e foi, criamos um arquivo da Jogoteca.

Vou aumentar aqui um pouco a letra e vamos digitar em jogoteca.py, from flask import Flask, então temos aqui, por que essa repetição de nomes? Porque um estamos nos referenciando a biblioteca que é o Flask, e a outra estamos importando a função Flask que vai nos permitir criar a aplicação.

Só que tem um problema, porque o Flask ele não é uma biblioteca embutida do Python, é uma biblioteca que temos que baixar, temos que fazer o download disso, então vamos fazer o download.

Vamos vir aqui embaixo da tela na quarta opção "terminal", o Pycharm já dá essa opção para nós acessarmos o terminal, também podemos selecionar as teclas “Alt + F12” para abrir o terminal.

Então clicamos aqui na barra inferior para aparecer o terminal, deixa eu aumentar a letra aqui, e vamos usar o instalador pip para fazer a instalação do Flask, então podemos fazer assim, podemos digitar, pip install flask.

Só que se eu fizer isso ele sempre vai pegar a versão mais atualizada do Flask, isso é bom por um motivo de que sempre temos a versão mais atualizada do Flask e tudo certo. Só que imagina o seguinte, você está desenvolvendo um projeto agora com a versão mais atualizada do Flask, ai por algum motivo daqui a três meses você quer voltar a ver essa aplicação, mas está em outro computador, está em um computador do seu amigo, sei lá, e você conseguiu os arquivos do projeto.

A versão do Flask já é outra, já se atualizou e você vai utilizar aquele mesmo projeto, vai instalar a versão mais atualizada de meses depois que você já devolveu aquele projeto e vai dar uma incompatibilidade, acaba dando uma incompatibilidade.

Então não é uma boa prática sempre instalarmos a última versão do Flask, porque às vezes pode dar um problema de compatibilidade quando vamos testar a nossa aplicação em tempos diferentes, fazemos a aplicação hoje, vamos testar daqui a três meses, pode ser que o a biblioteca do Flask mudou, ou alguma atualização aconteceu e já não vai mais funcionar.

Então sempre temos que acostumar a ver uma versão específica do Flask e selecionar ela dando um pip install flask== e no caso aqui vamos usar 2.0.2, essa é a versão que vou utilizar do Flask para fazer o projeto, então vamos dar um “Enter”, ele vai procurar e fazer a instalação, já fez a instalação, vou minimizar essa tela do terminal, e agora ele já vai importar em from flask import Flask a função que precisamos para iniciarmos a aplicação.

pip install flask==2.0.2

Agora vamos começar criando uma variável onde vamos colocar a aplicação em jogoteca.py, então vamos criar essa variável app=, onde vamos chamar a função Flask(), e dentro dessa função Flask vamos passar underline underline name, app = Flask(__name__), esse name faz uma referência ao próprio arquivo, garantindo que isso vai fazer rodar a aplicação.

Então já criamos uma boa parte, e para fazer rodar essa aplicação temos que terminar isso daqui com app.run(), e isso vai fazer rodar a nossa aplicação, só que ainda não está pronto, porque não colocamos nenhuma informação no nosso site para colocar uma informação no site, vamos precisar criar uma rota.

E vamos fazer isso a partir do `@app.routee vamos criar uma nova rota, e daí precisamos nomear essa rota, então eu vou colocar’/inicio’` que vai ser o nosso início, então assim criamos uma nova rota, só que toda vez que criamos uma nova rota vamos precisar de uma função que vai definir o que existe dentro dessa rota.

Vamos colocar aqui o nome da função de "olá", def ola():, vamos fazer inicialmente uma saudação, para aparecer alguma coisa lá na tela do site, vou colocar um "olá mundo", então vou colocar return e digitar o "olá mundo", ’Olá mundo’, pronto.

Contudo, temos que lembrar que não estamos lidando com só o terminal do Python, estamos fazendo um site, e na web não se é entendido esse tipo de linguagem, não podemos só colocar uma string lá e ela vai aparecer, precisamos trabalhar com HTML.

Então vamos colocar uma tag aqui, crua aqui mesmo de h1, só para aparecer no site de forma correta, essa aqui é uma tag de título <h1>Olá Mundo!</h1> e pronto, agora sim, vai aparecer alguma coisa lá no site.

Código em jogoteca.py:

from flask import Flask

app = Flask(__name__)

@app.route('/inicio')
def ola():
    return '<h1>Olá Mundo!</h1>'    

app.run()

E para rodar essa aplicação vamos clicar com o botão direito em cima do código e selecionar “Run Jogoteca” e vai começar a rodar o Jogoteca, vai ser exibido o terminal embaixo e ele vai estar dizendo em que endereço ele vai estar rodando isso, que no caso aqui é o endereço da nossa home que é http://127.0 0.1:5000/, podemos abrir essa página clicando em cima aqui e vai abrir no navegador.

Está aqui, abriu no navegador a página, só que deu um problema, ele deu um not found. O que aconteceu foi que colocamos uma rota para ele, estipulamos uma rota de ser barra início, /inicio, então ele ficou confuso, não sabe para onde que ele tem que ir, então vamos colocar no navegador “127.0.0.1:5000/inicio” e dar um “Enter”, e finalmente apareceu o “Olá mundo”.

Então agora, já conseguimos colocar nossa aplicação no ar, ela já está funcionando, já está inclusive conversando conosco, dando um "olá" para nós. Então no próximo vídeo vamos adentrar um pouco mais no projeto e aprimorar um pouco mais. Então fica aí para o próximo vídeo!

Sobre o curso Flask: crie uma webapp com Python

O curso Flask: crie uma webapp com Python possui 152 minutos de vídeos, em um total de 72 atividades. Gostou? Conheça nossos outros cursos de Python em Programação, ou leia nossos artigos de Programação.

Matricule-se e comece a estudar com a gente hoje! Conheça outros tópicos abordados durante o curso:

Aprenda Python acessando integralmente esse e outros cursos, comece hoje!

Plus

  • Acesso a TODOS os cursos da plataforma

    Mais de 1200 cursos completamente atualizados, com novos lançamentos todas as semanas, em Programação, Front-end, UX & Design, Data Science, Mobile, DevOps e Inovação & Gestão.

  • Alura Challenges

    Desafios temáticos para você turbinar seu portfólio. Você aprende na prática, com exercícios e projetos que simulam o dia a dia profissional.

  • Alura Cases

    Webséries exclusivas com discussões avançadas sobre arquitetura de sistemas com profissionais de grandes corporações e startups.

  • Certificado

    Emitimos certificados para atestar que você finalizou nossos cursos e formações.

  • Alura Língua (incluindo curso Inglês para Devs)

    Estude a língua inglesa com um curso 100% focado em tecnologia e expanda seus horizontes profissionais.

12X
R$85
à vista R$1.020
Matricule-se

Pro

  • Acesso a TODOS os cursos da plataforma

    Mais de 1200 cursos completamente atualizados, com novos lançamentos todas as semanas, em Programação, Front-end, UX & Design, Data Science, Mobile, DevOps e Inovação & Gestão.

  • Alura Challenges

    Desafios temáticos para você turbinar seu portfólio. Você aprende na prática, com exercícios e projetos que simulam o dia a dia profissional.

  • Alura Cases

    Webséries exclusivas com discussões avançadas sobre arquitetura de sistemas com profissionais de grandes corporações e startups.

  • Certificado

    Emitimos certificados para atestar que você finalizou nossos cursos e formações.

  • Alura Língua (incluindo curso Inglês para Devs)

    Estude a língua inglesa com um curso 100% focado em tecnologia e expanda seus horizontes profissionais.

12X
R$120
à vista R$1.440
Matricule-se
Conheça os Planos para Empresas

Acesso completo
durante 1 ano

Estude 24h/dia
onde e quando quiser

Novos cursos
todas as semanas