Spaces:
Sleeping
Sleeping
| title: Fastapi Mariadb | |
| emoji: 馃悹 | |
| colorFrom: pink | |
| colorTo: indigo | |
| sdk: docker | |
| pinned: false | |
| license: bigscience-openrail-m | |
| # FastAPI + MariaDB | |
| Proyecto que conecta FastAPI con una base de datos MariaDB usando `mysql-connector-python`. | |
| ## 馃搵 Requisitos previos | |
| - Python 3.8+ | |
| - MariaDB instalado y ejecut谩ndose | |
| - pip (gestor de paquetes de Python) | |
| ## 馃殌 Instalaci贸n | |
| ### 1. Clonar o descargar el proyecto | |
| ```bash | |
| cd c:\Moibe\code\fastapi-mariadb | |
| ``` | |
| ### 2. Crear un entorno virtual (recomendado) | |
| ```bash | |
| python -m venv venv | |
| venv\Scripts\activate | |
| ``` | |
| ### 3. Instalar dependencias | |
| ```bash | |
| pip install -r requirements.txt | |
| ``` | |
| ### 4. Configurar variables de entorno | |
| Copia el archivo `.env.example` a `.env` y completa tus credenciales: | |
| ```bash | |
| copy .env.example .env | |
| ``` | |
| Edita `.env` con tus datos de conexi贸n: | |
| ```env | |
| DB_HOST=localhost | |
| DB_USER=tu_usuario | |
| DB_PASSWORD=tu_contrase帽a | |
| DB_NAME=nombre_base_datos | |
| DB_PORT=3306 | |
| ``` | |
| ## 馃敡 C贸mo funciona | |
| ### 1. Variables de entorno (`.env`) | |
| Se cargan autom谩ticamente usando `python-dotenv`: | |
| - `DB_HOST` - Host del servidor MariaDB | |
| - `DB_USER` - Usuario de la base de datos | |
| - `DB_PASSWORD` - Contrase帽a | |
| - `DB_NAME` - Nombre de la base de datos | |
| - `DB_PORT` - Puerto (por defecto 3306) | |
| ### 2. Funci贸n `get_connection()` en `connection.py` | |
| - Carga las variables de entorno | |
| - Usa `mysql.connector` para conectar a MariaDB | |
| - Retorna la conexi贸n o `None` si falla | |
| - Tiene `autocommit=True` para ejecutar cambios autom谩ticamente | |
| ### 3. Endpoints en `main.py` | |
| Cada endpoint utiliza la conexi贸n as铆: | |
| ```python | |
| conn = get_connection() | |
| if not conn: | |
| raise HTTPException(status_code=500, detail="Error de conexi贸n") | |
| cursor = conn.cursor() | |
| cursor.execute("SELECT ...") | |
| resultado = cursor.fetchone() | |
| cursor.close() | |
| conn.close() | |
| ``` | |
| ## 鈻讹笍 Ejecutar la aplicaci贸n | |
| ```bash | |
| python main.py | |
| ``` | |
| La API estar谩 disponible en: `http://localhost:8000` | |
| ## 馃摎 Endpoints disponibles | |
| ### `GET /` | |
| Endpoint ra铆z de bienvenida. | |
| **Respuesta:** | |
| ```json | |
| { | |
| "mensaje": "Bienvenido a FastAPI con MariaDB" | |
| } | |
| ``` | |
| ### `GET /test-conexion` | |
| Prueba la conexi贸n a la base de datos. | |
| **Respuesta (exitosa):** | |
| ```json | |
| { | |
| "status": "success", | |
| "mensaje": "Conexi贸n exitosa", | |
| "mariadb_version": "10.6.8-MariaDB" | |
| } | |
| ``` | |
| ### `GET /datos` | |
| Obtiene datos de la tabla configurada. | |
| **Respuesta:** | |
| ```json | |
| { | |
| "status": "success", | |
| "cantidad": 5, | |
| "datos": [...] | |
| } | |
| ``` | |
| ## 馃摉 Documentaci贸n interactiva | |
| Una vez que la aplicaci贸n est茅 corriendo, accede a: | |
| - **Swagger UI**: http://localhost:8000/docs | |
| - **ReDoc**: http://localhost:8000/redoc | |
| ## 馃攼 Notas de seguridad | |
| - **NUNCA** subas el archivo `.env` a control de versiones | |
| - El `.gitignore` ya contiene `.env` para protegerte | |
| - En producci贸n, usa variables de entorno del sistema operativo | |
| - Considera usar secretos seguros para credenciales | |
| ## 馃悰 Soluci贸n de problemas | |
| ### Error: "Could not find module 'mysql.connector'" | |
| Aseg煤rate de instalar las dependencias: | |
| ```bash | |
| pip install -r requirements.txt | |
| ``` | |
| ### Error: "Connection refused" | |
| Verifica que: | |
| - MariaDB est谩 corriendo | |
| - Las credenciales en `.env` son correctas | |
| - El host y puerto son correctos | |
| ### Error: "Unknown database" | |
| Verifica que la base de datos existe y que el usuario tiene permisos. | |
| ## 馃摑 Pr贸ximos pasos | |
| 1. Ajusta `connection.py` si necesitas par谩metros adicionales | |
| 2. Modifica los endpoints en `main.py` seg煤n tus necesidades | |
| 3. Crea modelos Pydantic para validaci贸n de datos | |
| 4. Implementa autenticaci贸n si es necesario | |
| ## 馃搫 Licencia | |
| Este proyecto es de c贸digo abierto. Si茅ntete libre de modificarlo seg煤n tus necesidades. | |
| Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference | |