Crear una API con Bottle en PythonAnywhere
PythonAnywhere es una excelente plataforma para alojar aplicaciones Python de forma gratuita (con algunas limitaciones). En este tutorial, veremos cómo desplegar una API simple usando el framework Bottle.
Requisitos previos
- Una cuenta en PythonAnywhere (puedes usar la versión gratuita)
- Conocimientos básicos de Python
- Familiaridad con conceptos básicos de APIs
Paso 1: Configurar el entorno
pip install bottle
Paso 2: Crear los archivos necesarios
Necesitaremos dos archivos principales:
1. wsgi.py
Este archivo sirve como punto de entrada para la aplicación en PythonAnywhere.
import bottle
import os
import sys
# Añade la ruta de tu proyecto al sys.path
project_home = '/home/tuusuario/mysite'
if project_home not in sys.path:
sys.path = [project_home] + sys.path
# Importa la aplicación Bottle
from bottle_app import application
tuusuario
con tu nombre de usuario de PythonAnywhere y mysite
con el nombre de tu proyecto.
2. bottle_app.py
Este es el archivo principal de nuestra aplicación donde definiremos las rutas de la API.
import time
from bottle import Bottle, request, response, hook
app = Bottle()
@hook('after_request')
def enable_cors():
response.headers['Access-Control-Allow-Origin'] = '*'
response.headers['Access-Control-Allow-Methods'] = 'GET, POST, OPTIONS'
response.headers['Access-Control-Allow-Headers'] = 'Origin, Accept, Content-Type, X-Requested-With'
@app.route('/<:re:.*>', method='OPTIONS')
def options_handler():
response.status = 200
return ''
@app.route('/')
def hello_world():
return 'Hello from Bottle!'
application = app # Esto es lo que usará PythonAnywhere
Paso 3: Configurar la aplicación web en PythonAnywhere
- Inicia sesión en tu cuenta de PythonAnywhere
- Ve al panel de control (Dashboard)
- En la pestaña "Web", haz clic en "Add a new web app"
- Selecciona "Manual configuration" (no Flask ni Django)
- Selecciona la versión de Python que deseas usar
- En la siguiente pantalla, en la sección "Code", especifica:
- Source code: La ruta a tus archivos (normalmente /home/tuusuario/mysite)
- Working directory: La misma ruta
- WSGI configuration file: /var/www/tuusuario_pythonanywhere_com_wsgi.py
- Haz clic en "Reload" para aplicar los cambios
wsgi.py
.
Paso 4: Probar la API
Una vez configurado, puedes acceder a tu API en la URL que PythonAnywhere te proporciona (algo como tuusuario.pythonanywhere.com
).
Extendiendo la API
Puedes añadir más rutas y funcionalidad a tu API modificando el archivo bottle_app.py
. Por ejemplo:
@app.route('/api/hora')
def get_time():
return {'hora_actual': time.ctime()}
@app.route('/api/saludo/<nombre>')
def saludar(nombre):
return {'mensaje': f'Hola, {nombre}!'}
Consejos y buenas prácticas
- Usa siempre
application = app
al final de tu archivo Bottle para que PythonAnywhere pueda encontrar tu aplicación - Para cambios en el código, recuerda recargar tu aplicación web desde el panel de PythonAnywhere
- En la versión gratuita, tu aplicación se dormirá después de un tiempo de inactividad
- Considera usar variables de entorno para configuración sensible
Solucionando problemas comunes
Problemas comunes incluyen:
- Rutas incorrectas en
sys.path
- No tener el archivo
wsgi.py
correctamente configurado - Falta de permisos en los archivos
Conclusión
PythonAnywhere ofrece una forma sencilla de desplegar APIs hechas con Bottle sin necesidad de configurar servidores complejos. Con este tutorial, ya deberías tener una API básica funcionando que puedes expandir según tus necesidades.
Comentarios
Publicar un comentario