Publicado el 31/03/2025
Hoy te comparto cómo conecté mi web con una API externa usando Python. En este caso, se trata de OpenWeatherMap, una API que permite obtener el clima actual de cualquier ciudad en tiempo real. Este proyecto es ideal para practicar peticiones HTTP, manejo de respuestas JSON y el uso de claves API seguras.
🔧 ¿Qué necesitas?
- Python instalado en tu equipo
- Una clave API gratuita de OpenWeatherMap
- La librería requests instalada (pip install requests)
📦 Estructura del proyecto
- main.py: el script principal
- .env: archivo oculto donde guardo mi API Key de forma segura
- requirements.txt: archivo para instalar las dependencias
💻 Código base
import requests
import os
from dotenv import load_dotenv
# 1. Cargar clave de API desde .env
load_dotenv()
API_KEY = os.getenv("API_KEY")
# 2. URL base de la API de OpenWeatherMap
BASE_URL = "https://api.openweathermap.org/data/2.5/weather"
# 3. Solicitar ciudad al usuario
ciudad = input("🌍 Introduce una ciudad: ")
# 4. Construir parámetros de la consulta
params = {
"q": ciudad,
"appid": API_KEY,
"lang": "es",
"units": "metric"
}
# 5. Realizar petición a la API
respuesta = requests.get(BASE_URL, params=params)
# 6. Procesar respuesta
if respuesta.status_code == 200:
datos = respuesta.json()
temp = datos["main"]["temp"]
descripcion = datos["weather"][0]["description"]
print(f"🌤️ Clima en {ciudad}: {temp}°C, {descripcion}")
else:
print("❌ Ciudad no encontrada o error en la petición.")
🔒 Seguridad: ¿por qué usar .env?
En vez de dejar la API Key visible en el código, la guardo en un archivo .env así: API_KEY=tu_clave_aqui Y la cargo con la librería python-dotenv. Esto evita exponer credenciales si compartes tu proyecto en GitHub.
🚀 ¿Qué aprendí?
- Cómo hacer peticiones GET a una API REST
- Cómo trabajar con archivos .env y variables de entorno
- Cómo interpretar y mostrar datos en formato JSON
- La importancia de proteger tus claves de acceso
Este tipo de proyecto puede escalarse fácilmente: puedes mostrar el clima en tu web, en un dashboard, o integrarlo con una base de datos para registrar cambios en el tiempo.
🧠 ¿Te animas a probarlo tú también?