--- 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