Servidor web local com Python: do http.server ao Flask
Duas formas de subir um servidor web na sua máquina com Python: uma linha para servir arquivos estáticos e o Flask para quando você precisa de código. E o cuidado antes de levar isso para produção.
Fala pessoal, tudo certo?
Testar aplicações web localmente é uma prática comum, e o Python facilita muito isso. Neste post, vou mostrar dois caminhos: um que não precisa instalar nada e outro com o Flask, para quando a página precisa de lógica por trás.
Caminho 1: servir arquivos com uma linha
Se você só precisa abrir um HTML no navegador, compartilhar uma pasta na rede local ou testar um site estático, o Python já tem um servidor web embutido:
# dentro da pasta com os arquivos
python3 -m http.server 8000
Pronto. Acesse http://localhost:8000 e a pasta aparece no navegador. Para parar, Ctrl + C.
http://IP-da-sua-maquina:8000 do outro computador. Só não esqueça de parar o servidor depois.
Caminho 2: Flask, quando precisa de código
O Flask é um microframework web para Python: leve, flexível e ideal para protótipos, APIs pequenas e ferramentas internas.
Primeiro, tenha um ambiente virtual ativo, como mostrei no post sobre venv. Depois, instale o Flask:
python3 -m venv .venv
source .venv/bin/activate
pip install flask
Crie o arquivo app.py:
from flask import Flask, request
app = Flask(__name__)
@app.route("/")
def home():
return "Olá! Servidor Flask rodando."
@app.route("/ola/<nome>")
def ola(nome):
return f"Olá, {nome}!"
@app.route("/info")
def info():
return {"seu_ip": request.remote_addr, "navegador": request.user_agent.string}
E suba o servidor em modo de desenvolvimento:
flask --app app run --debug
Acesse http://127.0.0.1:5000, depois /ola/joao e /info. Repare que a rota /info devolve JSON só por retornar um dicionário.
O --debug faz duas coisas muito úteis: reinicia o servidor sozinho quando você salva o arquivo e mostra o erro detalhado no navegador quando algo quebra.
Acessando de outra máquina
Por padrão, o Flask só aceita conexões da própria máquina. Para testar pelo celular ou por outro computador da rede:
flask --app app run --host 0.0.0.0 --port 5000
--debug com --host 0.0.0.0 numa rede que não é sua. O modo debug permite executar código pelo navegador quando acontece um erro. Ele é feito só para a sua máquina.
E para produção?
O servidor do flask run é só para desenvolvimento. Para colocar no ar de verdade, use um servidor WSGI, como o gunicorn, normalmente atrás de um Nginx:
pip install gunicorn
gunicorn -w 4 -b 0.0.0.0:8000 app:app
Considerações Finais
Para arquivos estáticos, python3 -m http.server resolve em uma linha. Quando precisar de rotas e lógica, o Flask sobe um servidor de desenvolvimento em poucos minutos. E, quando for para produção, troque o servidor de desenvolvimento por gunicorn.
O próximo passo natural é transformar isso numa API. Mostrei como em criando sua primeira API de tarefas com Flask.
Abs e até a próxima!!!
:wq!
Post publicado originalmente em agosto de 2024 e atualizado em novembro de 2026.

Comentários
Postar um comentário