Pular para o conteúdo principal

Criando sua Primeira Aplicação Web com Python e Docker

 

Criando sua Primeira Aplicação Web com Python e Docker

Hoje vamos fazer algo prático: criar uma aplicação web simples em Python usando Flask e executá-la dentro de um contêiner Docker. Se você não sabe exatamente o que é Docker ou Flask, não se preocupe! Vou explicar tudo de forma simples para que você consiga acompanhar sem problemas.

O que é Docker?

Docker é uma ferramenta que permite empacotar aplicações e suas dependências em contêineres, garantindo que elas funcionem da mesma forma em qualquer ambiente. Em outras palavras, com o Docker, você cria um ambiente isolado e padronizado para rodar suas aplicações.

Como instalar o Docker

  1. Acesse o site oficial do Docker.
  2. Baixe e instale a versão apropriada para o seu sistema operacional (Windows, macOS ou Linux).
  3. Após a instalação, verifique se está tudo funcionando abrindo um terminal e executando:
    docker --version
    
    Se o Docker estiver instalado corretamente, ele vai exibir a versão instalada.

O que é Flask?

Flask é um microframework para criação de aplicações web em Python. Ele é leve, fácil de usar e ideal para projetos pequenos e médios. Com Flask, você pode criar rapidamente uma aplicação web funcional com poucas linhas de código.

Agora que você sabe o que é Docker e Flask, vamos para a parte divertida: criar sua primeira aplicação!

Passo a Passo: Criando a Aplicação Web

1. Criando o Projeto Flask

Primeiro, crie uma pasta para o projeto e dentro dela, um arquivo chamado app.py. Esse arquivo vai conter o código da nossa aplicação Flask:

# app.py
from flask import Flask, render_template

app = Flask(__name__)

# Modelo simples
class Pessoa:
    def __init__(self, nome, idade):
        self.nome = nome
        self.idade = idade

@app.route('/')
def home():
    pessoa = Pessoa("Alice", 30)
    return f"<h1>Nome: {pessoa.nome}, Idade: {pessoa.idade}</h1>"

if __name__ == '__main__':
    app.run(host='0.0.0.0', port=5000)

Neste código:

  • Criamos uma classe Pessoa que representa um modelo simples com nome e idade.
  • Definimos uma rota / que cria uma instância de Pessoa e exibe seu nome e idade em uma página HTML simples.
  • Chamamos app.run() para iniciar o servidor Flask.

2. Criando o Arquivo Dockerfile

O Dockerfile é o arquivo que instrui o Docker sobre como construir o contêiner da nossa aplicação.

Crie um arquivo chamado Dockerfile na mesma pasta do app.py com o seguinte conteúdo:

# Usando a imagem oficial do Python
FROM python:3.9-slim

# Definindo o diretório de trabalho dentro do contêiner
WORKDIR /app

# Copiando o arquivo da aplicação para o contêiner
COPY app.py .

# Instalando o Flask
RUN pip install flask

# Comando para iniciar a aplicação
CMD ["python", "app.py"]

O que estamos fazendo aqui:

  1. Usamos uma imagem base do Python (versão 3.9).
  2. Definimos /app como diretório de trabalho dentro do contêiner.
  3. Copiamos o arquivo app.py para o contêiner.
  4. Instalamos o Flask usando pip install.
  5. Definimos o comando padrão para rodar a aplicação (python app.py).

3. Criando o Arquivo docker-compose.yml (Opcional)

Para facilitar a execução, podemos criar um arquivo docker-compose.yml com a seguinte configuração:

version: '3'
services:
  web:
    build: .
    ports:
      - "5000:5000"

Esse arquivo instrui o Docker Compose a construir a imagem usando o Dockerfile e expor a aplicação na porta 5000.

4. Construindo e Executando a Aplicação

Agora que temos tudo configurado, vamos construir e executar a aplicação.

  1. Construir a imagem: No terminal, navegue até a pasta do projeto e execute:

    docker build -t flask-app .
    

    Isso vai criar uma imagem Docker chamada flask-app.

  2. Executar o contêiner:

    docker run -p 5000:5000 flask-app
    

    A aplicação estará acessível em http://localhost:5000.

Se você optou por usar o docker-compose, basta executar:

docker-compose up

Conclusão

Com poucos passos, você criou uma aplicação web em Python usando Flask e a executou em um contêiner Docker. Isso é apenas o começo! A partir daqui, você pode adicionar funcionalidades, melhorar o front-end ou integrar um banco de dados.

Se você nunca trabalhou com Docker ou Flask antes, espero que este guia tenha tornado o processo mais claro e divertido. Agora é sua vez de testar e criar suas próprias aplicações! 

Este projeto pode ser  encontrado aqui.

Comentários

Mais visitadas

Lista de políticos com ficha suja

ATUALIZAÇÃO (08/03/2012 ano de eleição) Representantes de duas pessoas da lista (Eliseu Padilha e Alex Canziani) entraram em contato e pediram que esses fossem removidos, alegando que não houve condenação. É justo essa requisição, porém vale lembrar que escândalos nacionalmente reconhecidos de corrupção não deram em nada, por isso o que realmente conta nesse ano de eleição é uma pesquisa minuciosa sobre os candidatos escolhidos, eu particularmente, por não estar nem um pouco satisfeito, não irei votar em ninguém que já tenha sido eleito. Estou voltando a postar por um motivo nobre, meu tempo continua apertado mas esse post é rápido, na verdade nem meu ele é (visitem o espaço de nosso amigo Lord ), estou apenas repassando essa valiosa informação. Teremos eleição esse ano, e é importante não repetirmos erros passados, vamos ficar atentos em relação a esses nomes e exclui-los de vez do cenário politico nacional. Façamos nossa parte, publicando em nossos blog...

Alterar cores do PageControl (Delphi)

O padrão Windows todo cinza não é muito atraente, por isso quando nos utilizarmos do PageControl podemos alterar suas cores e fontes da seguinte maneira: Em primeiro lugar devemos alterar a propriedade OwnerDraw para TRUE ; Depois implementar seu método DrawTab da seguinte maneira: //pinta a fonte Control.Canvas.Font.Color:=clBlack; // // pinta a paleta / aba Control.Canvas.brush.Color:=clSkyBlue; PageControl1.Canvas.Rectangle(Rect); Control.Canvas.TextOut(Rect.left+5,Rect.top+3,PageControl1.Pages[tabindex].Caption); // pinta a parte interna (tabsheet) PageControl1.Pages[TabIndex].brush.Color := Control.Canvas.brush.Color; PageControl1.Pages[TabIndex].Repaint; Caso a intenção seja manter cada aba com seu próprio estilo basta adicionar um CASE filtrando o índice das abas: case TabIndex of   0: Control.Canvas.Font.Color:=clBlack;   1: Control.Canvas.Font.Color:=clWindow; ...

Aplicação Flask usando Nginx e Gunicorn

Aplicação Flask usando Nginx e Gunicorn Se você já desenvolveu uma aplicação Flask básica, sabe que o servidor de desenvolvimento embutido não é ideal para produção. Ele não é projetado para lidar com altos volumes de tráfego ou conexões simultâneas. Para tornar sua aplicação Flask mais robusta e pronta para produção, podemos usar o Gunicorn como servidor de aplicação e o Nginx como proxy reverso. Neste artigo, vamos adaptar o exemplo anterior ( Criando uma Aplicação CRUD com Flask, PostgreSQL e Docker ) para incluir o Nginx e o Gunicorn. O que são Nginx e Gunicorn? Gunicorn O Gunicorn (Green Unicorn) é um servidor de aplicação WSGI que roda aplicações Python como o Flask. Ele é eficiente e simples de configurar, lidando com múltiplas requisições ao mesmo tempo, algo que o servidor embutido do Flask não faz bem. Nginx O Nginx é um servidor web que atua como um proxy reverso. Ele recebe requisições HTTP e as encaminha ao Gunicorn. Além disso, o Nginx pode: Servir arquivos ...