Conceptos básicos de Flask
9 ejemplos para empezar con Flask 3.1: 6 básicos y 3 intermedios.
Prerrequisitos
uv pip install "flask>=3.1"
export FLASK_APP=app:create_app
flask run- Flask 3.1 en Python 3.14 utiliza Werkzeug 3.
Ejemplos básicos
1. AplicACIÓN MÍNIMA
Aplicación WSGI "Hola mundo".
from flask import Flask
app = Flask(__name__)
@app.get("/")
def home():
return {"message": "Hola"}Flask(__name__)establece la raíz del paquete.- Devuelve diccionarios para JSON con Flask 3.
- Usa
flask runen desarrollo.
Relacionado: Creación de APIs REST - Patrones JSON
2. MÉTODOS DE RUTA
Restringe verbos HTTP.
from flask import Flask
app = Flask(__name__)
@app.route("/items", methods=["GET", "POST"])
def items():
return {"ok": True}- La lista
methodscontrola los verbos. - 405 cuando el verbo no está permitido.
- Prefiere los atajos
@app.get/@app.post.
3. ARGUMENTOS DE CONSULTA
Lee parámetros de la cadena de consulta.
from flask import Flask, request
app = Flask(__name__)
@app.get("/search")
def search():
q = request.args.get("q", "")
return {"q": q}request.argses un mapeo inmutable.- Proporciona valores predeterminados para claves faltantes.
- Valida antes de pasar a SQL.
4. CUERPO JSON
Analiza cuerpos POST JSON.
from flask import Flask, request
app = Flask(__name__)
@app.post("/items")
def create():
data = request.get_json(force=True)
return data, 201- Comprueba
Content-Typeen producción. - Valida con Pydantic o marshmallow.
- Devuelve una tupla para el código de estado.
5. VARIABLES DE URL
Segmentos de ruta 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}- Los convertidores fuerzan los tipos.
- Las anotaciones de tipo documentan la intención.
- 404 mediante
abort(404)cuando falta.
6. MANEJADOR DE ERRORES
Errores JSON.
from flask import Flask, abort
app = Flask(__name__)
@app.errorhandler(404)
def not_found(e):
return {"error": "not_found"}, 404- Registra manejadores por código.
- Mantén la forma del payload estable.
- Registra detalles en el servidor.
Relacionado: Patrones de middleware a través de hooks - ciclo de vida
Ejemplos intermedios
7. FÁBRICA DE APLICACIONES
Crea la aplicación a través de una función fábrica.
from flask import Flask
def create_app():
app = Flask(__name__)
app.config.from_mapping(DEBUG=True)
return app- Las fábricas permiten probar múltiples configuraciones.
- Registra blueprints dentro de la fábrica.
- Evita aplicaciones globales a nivel de módulo en bibliotecas.
Relacionado: Fábricas de aplicaciones y Blueprints - blueprints
8. BLUEPRINT
Rutas modulares.
from flask import Blueprint
bp = Blueprint("users", __name__, url_prefix="/users")
@bp.get("/")
def list_users():
return []- Los blueprints agrupan rutas relacionadas.
url_prefixcomparte la raíz de la ruta.- Registra con
app.register_blueprint.
9. CLIENTE DE PRUEBAS
Pruebas HTTP en proceso.
def test_home(client):
r = client.get("/")
assert r.status_code == 200- El fixture de pytest envuelve
app.test_client(). - No se requiere red.
- Establece la bandera de configuración
TESTING.
Relacionado: Pruebas de Flask - fixtures
Versiones de la pila: Esta página se escribió para Python 3.14.0 (estable 3.14, mantenimiento 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+ y uv 0.6+.