Ir al contenido principal

Crear una API con Bottle en PythonAnywhere

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

Nota: PythonAnywhere ya tiene Bottle instalado en su entorno, pero si necesitas una versión específica o quieres instalarlo localmente primero, puedes usar: 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
Importante: Reemplaza 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

  1. Inicia sesión en tu cuenta de PythonAnywhere
  2. Ve al panel de control (Dashboard)
  3. En la pestaña "Web", haz clic en "Add a new web app"
  4. Selecciona "Manual configuration" (no Flask ni Django)
  5. Selecciona la versión de Python que deseas usar
  6. 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
  7. Haz clic en "Reload" para aplicar los cambios
Nota: PythonAnywhere creará automáticamente un archivo WSGI inicial. Deberás editarlo y reemplazarlo con el contenido de nuestro 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).

Respuesta esperada: Al acceder a la raíz de tu sitio, deberías ver el mensaje "Hello from Bottle!".

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

Error 500: Si recibes este error, revisa los logs de error en PythonAnywhere (disponibles en la pestaña "Web") para diagnosticar el problema.

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

Entradas populares de este blog

Instalación y Configuración de MySQL 5.7 en Ubuntu 24.04 LTS

Instalar MySQL 5.7 en Ubuntu 24.04 1. Descargar e instalar MySQL Copiar mkdir ~/mysql57 cd ~/mysql57 wget https://cdn.mysql.com/archives/mysql-5.7/mysql-5.7.44-linux-glibc2.12-x86_64.tar.gz tar -zxvf mysql-5.7.44-linux-glibc2.12-x86_64.tar.gz sudo mv mysql-5.7.44-linux-glibc2.12-x86_64 /usr/local/mysql sudo ln -s /usr/local/mysql/bin/mysql /usr/local/bin/mysql 2. Instalar dependencias necesarias IMPORTANTE: Se descargan las versiones nuevas de las librerías y se las vincula con las librerías que necesita MySQL. Copiar sudo apt update # Reemplazo de libaio sudo apt install libaio1t64 # Reemplazo de libtinfo y ncurses sudo apt install libtinfo6 libncurses6 Copiar # Crear los enlaces simbólicos sudo ln -sf /usr/lib/x86_64-linux-gnu/libaio.so.1t64 /usr/lib/libaio.so.1 sudo ln -sf /usr/lib/x86_64-linux-gnu/libtinfo.so.6 /usr/lib/x86_64-linux-gnu/libtinfo.so.5 sudo ln -sf /usr/lib/x86_64-linux-gnu/libncurses.so.6 /usr/lib/x86_64...

Instalar DeepSeek R1 1.5B en Ubuntu 24.04 sin GPU

Instalar DeepSeek en tu sistema sin GPU, pasos: Especificaciones del Entorno de Pruebas Componente Detalle SO Ubuntu Cinnamon 24.04 LTS x86_64 Kernel 6.8.0-51-generic CPU Intel i7-6820HQ (8 núcleos) @ 3.600GHz GPUs AMD ATI Radeon HD 8830M / R7 250 / R7 M465X Intel HD Graphics 530 RAM 15.882 GB (3.716 GB en uso) Resolución 1440x810 Escritorio Cinnamon 6.0.4 1. Instalar Git LFS sudo apt-get install git-lfs git lfs install 2. Clonar el repositorio cd /opt sudo mkdir deepseek && sudo chown $USER:$USER deepseek cd deepseek git clone https://huggingface.co/deepseek-ai/DeepSeek-R1-Distill-Qwen-1.5B 3. Crear y activar un entorno virtual python -m ve...

Instalar Jasper Studio 6.21 para Ubuntu 24.04

Instalar js-studiocomm_6.21.3 en Ubuntu 24.4 Para instalar Jaspersoft Studio en Ubuntu 24.4, sigue estos pasos: 1. Descargar Jasper Studio Descarga la versión js-studiocomm_6.21.3 desde el siguiente enlace: Jaspersoft Studio 6.21.3 2. Crear el directorio de instalación mkdir /opt/jasperstudio 3. Mover el archivo descargado mv /dir_descarga/js-studiocomm_6.21.3_linux_x86_64.tgz /opt/jasperstudio/ cd /opt/jasperstudio 4. Extraer el archivo tar -xvzf js-studiocomm_6.21.3_linux_x86_64.tgz cd js-studiocomm_6.21.3 5. Ejecutar Jaspersoft Studio ./Jaspersoft\ Studio 6. Crear acceso directo en el escritorio Para facilitar el acceso, crea un archivo .desktop en el escritorio: gedit ~/Escritorio/jaspersoft-studio.desktop En el archivo jaspersoft-studio.desktop , agrega lo siguiente: [Desktop Entry] Version=1.0 Ty...