jueves, 23 de julio de 2026

Día 24 — FastAPI: tu primera API REST en pocos minutos

FastAPI es uno de los frameworks Python más demandados en el desarrollo backend actual, gracias a su rapidez de desarrollo, su excelente rendimiento y la generación automática de documentación interactiva. Crear una API REST funcional requiere muy pocas líneas de código.

Una de sus características más valoradas es el tipado de parámetros: al especificar el tipo de cada argumento (str, int, etc.), FastAPI valida automáticamente los datos recibidos y genera documentación accesible en la ruta /docs, sin necesidad de escribirla manualmente.

Código de ejemplo:

from fastapi import FastAPI app = FastAPI() @app.get("/") def inicio(): return {"mensaje": "¡Hola desde FastAPI!"} @app.get("/usuario/{nombre}") def usuario(nombre: str, edad: int = 0): return {"nombre": nombre, "edad": edad} # Ejecutar con: uvicorn main:app --reload




miércoles, 22 de julio de 2026

Día 23 — Decoradores: añadiendo superpoderes a tus funciones

Un decorador es una función especial que envuelve a otra función para modificar o ampliar su comportamiento sin necesidad de alterar su código original. Se aplican colocando el símbolo @ seguido del nombre del decorador justo encima de la definición de la función.

Los decoradores son una herramienta muy presente en frameworks profesionales: en Flask y FastAPI se usan para definir rutas (@app.get), y en Django para gestionar permisos o autenticación. Entender cómo funcionan internamente ayuda mucho a comprender el comportamiento de estas herramientas.

Código de ejemplo:

import time

def medir_tiempo(funcion):
    def wrapper(*args, **kwargs):
        inicio = time.time()
        resultado = funcion(*args, **kwargs)
        print(f"Tardó: {time.time() - inicio:.4f}s")
        return resultado
    return wrapper

@medir_tiempo
def calcular():
    return sum(range(1_000_000))

print(calcular())


martes, 21 de julio de 2026

Día 22 — NumPy: cálculo numérico ultrarrápido

NumPy es la librería fundamental para el cálculo numérico en Python, y la base sobre la que se construyen herramientas como Pandas, TensorFlow o scikit-learn. Su principal ventaja es la capacidad de realizar operaciones sobre arrays completos sin necesidad de bucles explícitos, lo que se traduce en un rendimiento muchísimo mayor que el de las listas tradicionales de Python.

Esta capacidad de "vectorizar" operaciones es esencial cuando se trabaja con grandes volúmenes de datos numéricos, como ocurre habitualmente en ciencia de datos, machine learning o procesamiento de señales.

Código de ejemplo:

import numpy as np

arr = np.array([1, 2, 3, 4, 5])

print(arr * 2)        # [2 4 6 8 10] - sin bucle
print(arr.mean())     # 3.0
print(arr.sum())      # 15

# Operaciones con matrices
matriz = np.array([[1, 2], [3, 4]])
print(np.dot(matriz, matriz))    # Producto matricial