Você sabe o que é Flask no Python? O Flask é um micro-framework de desenvolvimento web conhecido por sua simplicidade e flexibilidade.
Se quiser pode acompanhar esse conteúdo em formato de vídeo ou pode acessar o nosso Canal do YouTube para mais vídeos!
Para receber por e-mail o(s) arquivo(s) utilizados na aula, preencha:
Não vamos te encaminhar nenhum tipo de SPAM! A Hashtag Treinamentos é uma empresa preocupada com a proteção de seus dados e realiza o tratamento de acordo com a Lei Geral de Proteção de Dados (Lei n. 13.709/18). Qualquer dúvida, nos contate.
Você sabe como o Flask funciona no Python e como ele pode ser usado para criar sites e APIs?
O Flask é um micro-framework de desenvolvimento web que permite criar sites e APIs de maneira fácil e eficiente usando Python.
Nesta aula, vou te mostrar rapidamente a estrutura de um site em Flask, como criar múltiplas páginas, o que fazer em projetos mais complexos, e como adicionar um banco de dados e formulários ao seu site.
Além disso, você também aprenderá a usar templates e a estilizar seus sites em Flask com HTML e CSS!
O objetivo desta aula é oferecer uma introdução ao Flask em Python. Ao final, você terá uma noção de como usar o Flask para iniciar seus projetos de desenvolvimento web no Python.
O Flask é um micro-framework para desenvolvimento web em Python. Ele é considerado micro porque fornece apenas as funcionalidades básicas e essenciais para que você possa criar sites, aplicativos web e APIs de forma rápida e eficiente.
Sua abordagem “one drop at a time” permite adicionar funcionalidades de forma gradual, tornando-o uma escolha popular tanto para iniciantes quanto para desenvolvedores experientes.
Com o Flask, você tem grande flexibilidade e controle sobre o projeto, podendo escolher quais extensões e bibliotecas utilizar. Graças à sua facilidade de uso, configuração ágil e funcionalidades práticas, o Flask é uma ferramenta poderosa para desenvolvimento web.
As vantagens do Flask, em comparação com outros frameworks de desenvolvimento web, estão na sua simplicidade e flexibilidade.
O Flask é extremamente simples de configurar e começar a usar, sendo mais leve e não impondo muitas regras ou estruturas rígidas.
Sua curva de aprendizado é mais suave, especialmente em projetos de pequeno e médio porte, sendo ideal para quem está começando ou para quem precisa de uma solução ágil para um projeto web.
Além disso, o Flask permite que você configure e escolha apenas as bibliotecas e extensões necessárias para o seu projeto.
Essa facilidade e flexibilidade fazem do Flask um framework amplamente adotado, até mesmo por grandes empresas, mostrando que ele é capaz de lidar com projetos complexos e de grande escala.
Além disso, a comunidade do Flask é bastante ativa, oferecendo tutoriais, recursos, plugins e extensões que facilitam o aprendizado e a resolução de problemas.
Para começar a usar o Flask, você precisa instalá-lo. A instalação é fácil e pode ser feita através do pip. No terminal do seu editor de código, basta executar o seguinte comando:
pip install flask
Depois de instalar o Flask, o próximo passo é importar a classe principal do framework para o arquivo Python onde desenvolveremos o código do site ou do aplicativo web.
Criação do Aplicativo:
Para criar sua aplicação Flask, você deve criar uma instância da classe Flask, passando como argumento __name__, que indica onde o Flask deve buscar os recursos e arquivos necessários para a aplicação.
Para entender melhor sobre o argumento __name__, confira a nossa aula: __name__ e __main__ no Python. O que Significa Isso?
from flask import Flask app = Flask(__name__)
Basicamente, sempre que você for iniciar um novo projeto em Flask, você usará essa estrutura.
Definição de Rotas e Views com Flask:
No Flask, rotas são responsáveis por mapear URLs específicas para funções Python, conhecidas como views.
As rotas são os caminhos ou URLs que definem qual página do site será acessada; elas representam o endereço na web que o usuário visitará para visualizar ou interagir com o site.
O conteúdo dessas rotas é definido por funções específicas, chamadas views. Dentro dessas views, o Flask processa as solicitações recebidas do navegador e retorna a resposta adequada, como o conteúdo da página.
Para criar uma rota com Flask, utilizamos o decorator @app.route(‘caminho’), onde ‘caminho’ é substituído pela rota desejada. Por exemplo, para criar uma rota para a página inicial, usamos @app.route(‘/’).
Abaixo do decorator, adicionamos a função que retornará as informações para a página inicial (homepage). Para o nosso exemplo, a função simplesmente exibirá a mensagem “Meu site no Flask”.
from flask import Flask app = Flask(__name__) @app.route("/") def homepage(): return "Meu site no Flask"
Você pode criar diferentes rotas para o seu site, associando-as a diferentes funções, como /blog, /contato, etc.
Execução do Aplicativo:
Por fim, para colocar o site no ar, utilizamos o comando app.run() para iniciar o servidor de desenvolvimento, permitindo o acesso ao site localmente.
Esse método geralmente é colocado dentro de uma estrutura condicional if __name__ == “__main__”: para garantir que o site só será executado quando o arquivo for chamado diretamente, evitando a execução do código quando o módulo for importado.
from flask import Flask app = Flask(__name__) @app.route("/") def homepage(): return "Meu site no Flask" if __name__ == "__main__": app.run()
Ao executar esse código, o Flask criará um link no terminal do seu editor para que você possa acessar o site no seu computador.
Essa é a estrutura mais básica de uma aplicação Flask em Python. A partir dela, você pode adicionar novas rotas para seu site ou iniciar o desenvolvimento de uma API.
No caso de uma API, dentro da função, em vez de retornar uma página web, você deve retornar dados em formatos como JSON ou XML.
Para saber como criar sua própria API do zero com Python, confira nossa aula completa: API no Python – O que é e Como Criar Sua Própria API?
Em projetos maiores com Flask, o código é dividido em múltiplos arquivos para melhorar a organização e a manutenção. Os arquivos mais comuns em uma estrutura de projeto Flask são: main.py, views.py (ou routes.py) e models.py.
O arquivo main.py é responsável por importar o Flask e configurar os elementos principais do aplicativo, como a criação do objeto app, o sistema de autenticação e a conexão com o banco de dados.
As rotas e as views da aplicação são definidas e organizadas em um arquivo comumente chamado de routes.py ou views.py. Nele, você pode criar quantas rotas forem necessárias para o seu projeto.
Para que elas funcionem corretamente, é necessário importar o aplicativo do arquivo main.py.
from main import app # rotas @app.route("/") def homepage(): return "Meu site no Flask" @app.route("/blog") def blog(): return "Bem vindo ao blog"
Como as rotas agora estão sendo definidas em outro arquivo, dentro do main.py é necessário importar essas rotas usando o comando from views import *. Isso permitirá que o aplicativo tenha acesso a todas as rotas definidas.
from flask import Flask app = Flask(__name__) from views import * if __name__ == "__main__": app.run()
Para colocar seu site no ar, basta executar o arquivo main.py novamente, e você terá acesso às diferentes rotas criadas.
O terceiro arquivo, models.py, é usado para definir a estrutura e as relações dos dados no banco de dados do seu projeto.
Nele, definimos os modelos de dados da aplicação, que representam as tabelas do banco de dados e a forma como os dados são armazenados e manipulados.
Este arquivo ajuda a organizar o código separando a lógica de manipulação de dados (como criação, leitura, atualização e exclusão de registros) do restante da lógica da aplicação.
Ao trabalhar com bancos de dados no Flask, é nesse arquivo que você definirá as classes que representam as tabelas e seus atributos, além de criar e definir relacionamentos entre essas tabelas e validações de dados.
A extensão Flask-SQLAlchemy é uma escolha popular para integrar bancos de dados com Flask de forma mais eficiente.
No exemplo inicial, mostrei como criar uma página simples no Flask que exibe apenas uma mensagem. No entanto, o Flask pode retornar páginas HTML completas, ao invés de um texto simples.
Para criar páginas web dinâmicas e interativas, você precisará definir duas pastas dentro do seu projeto: templates (para arquivos HTML) e static (para arquivos CSS e JavaScript).
Dessa forma, você pode criar o código HTML completo da sua página e usar as views do Flask para renderizar esse template, separando a lógica da apresentação e facilitando o desenvolvimento.
Na pasta static, você pode armazenar arquivos CSS, JavaScript, imagens e outros recursos estáticos que serão integrados ao projeto, para estilizar ou adicionar funcionalidades à página.
Dentro da pasta templates, crie o arquivo homepage.html com a estrutura básica de um documento HTML.
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> </head> <body> Meu site em Flask no HTMLzao da massa </body> </html>
Para renderizar a página HTML criada, importe a função render_template do Flask no arquivo views.py. Essa função permite carregar arquivos HTML a partir da pasta templates.
from main import app from flask import render_template # rotas @app.route("/") def homepage(): return render_template("homepage.html") @app.route("/blog") def blog(): return "Bem vindo ao blog"
Depois de fazer essas alterações, salve seus arquivos, encerre a execução atual do site pressionando Ctrl + C no terminal do editor de código e execute novamente o arquivo main.py.
Ao acessar a página inicial, a mensagem “Meu site em Flask no HTMLzao da massa” aparecerá conforme definido no body da estrutura do arquivo HTML.
Com o uso desses recursos, você pode expandir significativamente as funcionalidades dos seus sites em Flask Python.
À medida que o projeto cresce, pode ser necessário adicionar novas funcionalidades como formulários, autenticação e integração com bancos de dados, utilizando bibliotecas e extensões adicionais como Flask-WTF e Flask-SQLAlchemy.
O Flask também oferece suporte ao gerenciamento de sessão e cookies, permitindo armazenar informações sobre o estado da sessão do usuário.
É possível configurar uma chave secreta para criptografar os dados da sessão e armazená-los no cookie do usuário, mantendo o estado do usuário durante a navegação no aplicativo web.
Para implantar seu aplicativo Flask em um ambiente de produção, existem várias abordagens. Uma opção comum é usar um servidor WSGI, como o Gunicorn ou uWSGI, que gerencia a comunicação entre o aplicativo Flask e o servidor web.
Além disso, você pode configurar um servidor web, como o Nginx, para encaminhar as solicitações para o seu aplicativo Flask.
Com o Flask, você pode desenvolver aplicativos web poderosos e escaláveis em Python, utilizando rotas, views, gerenciamento de sessão, extensões e técnicas de implantação para criar aplicativos web eficientes e de alta qualidade.
Para aprender como fazer o deploy do seu site em detalhes, recomendo a aula: Servidor Gratuito Railway e Render para seu Site – Alternativa para Heroku
Em resumo, o Flask é uma ferramenta poderosa para desenvolver aplicações web de forma simples e rápida.
Por ser um micro-framework de fácil configuração e bastante flexível, é uma excelente opção tanto para iniciantes quanto para desenvolvedores experientes que queiram iniciar seus projetos de desenvolvimento web no Python.
O Flask permite criar sites, aplicativos web e APIs de forma rápida e eficiente, com a possibilidade de adicionar funcionalidades gradualmente, como suporte a banco de dados, autenticação, templates e muito mais.
Se você quer aprender Flask de forma mais completa e avançada, considere conferir o nosso minicurso: Minicurso Gratuito de Criação de Site
Ou, se deseja aprender a criar sites mais complexos, como réplicas do Pinterest e do Netflix, ou até mesmo e-commerces completos, confira o nosso Curso Completo Python Impressionador.
Para acessar outras publicações de Python, clique aqui!
Posts mais recentes de Python
Posts mais recentes da Hashtag Treinamentos
Expert em conteúdos da Hashtag Treinamentos. Auxilia na criação de conteúdos de variados temas voltados para aqueles que acompanham nossos canais.