Noções Básicas de Flask
9 exemplos para você começar com Flask 3.1 - 6 básicos e 3 intermediários.
Pré-requisitos
uv pip install "flask>=3.1"
export FLASK_APP=app:create_app
flask run- Flask 3.1 no Python 3.14 usa Werkzeug 3.
Exemplos Básicos
1. App Mínimo
App WSGI "Hello world".
from flask import Flask
app = Flask(__name__)
@app.get("/")
def home():
return {"message": "Hello"}Flask(__name__)define a raiz do pacote.- Retorna dicionários para JSON com Flask 3.
- Use
flask runem desenvolvimento.
Relacionado: Construindo APIs REST - Padrões JSON
2. Métodos de Rota
Restringe verbos HTTP.
from flask import Flask
app = Flask(__name__)
@app.route("/items", methods=["GET", "POST"])
def items():
return {"ok": True}- A lista
methodscontrola os verbos. - Retorna 405 quando o verbo não é permitido.
- Prefira os atalhos
@app.get/@app.post.
3. Argumentos de Query
Lê parâmetros da string de query.
from flask import Flask, request
app = Flask(__name__)
@app.get("/search")
def search():
q = request.args.get("q", "")
return {"q": q}request.argsé um mapeamento imutável.- Forneça valores padrão para chaves ausentes.
- Valide antes de passar para SQL.
4. Corpo JSON
Analisa corpos POST JSON.
from flask import Flask, request
app = Flask(__name__)
@app.post("/items")
def create():
data = request.get_json(force=True)
return data, 201- Verifique o
Content-Typeem produção. - Valide com Pydantic ou marshmallow.
- Retorne uma tupla para o código de status.
5. Variáveis de URL
Segmentos de caminho dinâmicos.
from flask import Flask
app = Flask(__name__)
@app.get("/users/<int:user_id>")
def user(user_id: int):
return {"user_id": user_id}- Conversores forçam tipos.
- Dicas de tipo documentam a intenção.
- Retorna 404 via
abort(404)quando ausente.
6. Manipulador de Erros
Erros em JSON.
from flask import Flask, abort
app = Flask(__name__)
@app.errorhandler(404)
def not_found(e):
return {"error": "not_found"}, 404- Registre manipuladores por código.
- Mantenha a forma do payload estável.
- Registre detalhes no lado do servidor.
Relacionado: Padrões de Middleware via Hooks - ciclo de vida
Exemplos Intermediários
7. Fábrica de App
Cria app via função de fábrica.
from flask import Flask
def create_app():
app = Flask(__name__)
app.config.from_mapping(DEBUG=True)
return app- Fábricas permitem testar múltiplas configurações.
- Registre blueprints dentro da fábrica.
- Evite app global em nível de módulo em bibliotecas.
Relacionado: Fábricas de Aplicação e Blueprints - blueprints
8. Blueprint
Rotas modulares.
from flask import Blueprint
bp = Blueprint("users", __name__, url_prefix="/users")
@bp.get("/")
def list_users():
return []- Blueprints agrupam rotas relacionadas.
url_prefixcompartilha a raiz do caminho.- Registre com
app.register_blueprint.
9. Cliente de Teste
Testes HTTP em processo.
def test_home(client):
r = client.get("/")
assert r.status_code == 200- O fixture
pytestenvolveapp.test_client(). - Nenhuma rede é necessária.
- Defina o flag de configuração
TESTING.
Relacionado: Testando Flask - fixtures
Versões da Stack: Esta página foi escrita para Python 3.14.0 (estável 3.14, manutenção 3.13), FastAPI 0.115+, Django 5.2, Flask 3.1, Pydantic 2, PyTorch 2.6+, pandas 2.2+, Polars 1.x, ruff 0.9+, e uv 0.6+.