Spaces:
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
cd c:\Moibe\code\fastapi-mariadb
2. Crear un entorno virtual (recomendado)
python -m venv venv
venv\Scripts\activate
3. Instalar dependencias
pip install -r requirements.txt
4. Configurar variables de entorno
Copia el archivo .env.example a .env y completa tus credenciales:
copy .env.example .env
Edita .env con tus datos de conexi贸n:
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 MariaDBDB_USER- Usuario de la base de datosDB_PASSWORD- Contrase帽aDB_NAME- Nombre de la base de datosDB_PORT- Puerto (por defecto 3306)
2. Funci贸n get_connection() en connection.py
- Carga las variables de entorno
- Usa
mysql.connectorpara conectar a MariaDB - Retorna la conexi贸n o
Nonesi falla - Tiene
autocommit=Truepara ejecutar cambios autom谩ticamente
3. Endpoints en main.py
Cada endpoint utiliza la conexi贸n as铆:
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
python main.py
La API estar谩 disponible en: http://localhost:8000
馃摎 Endpoints disponibles
GET /
Endpoint ra铆z de bienvenida.
Respuesta:
{
"mensaje": "Bienvenido a FastAPI con MariaDB"
}
GET /test-conexion
Prueba la conexi贸n a la base de datos.
Respuesta (exitosa):
{
"status": "success",
"mensaje": "Conexi贸n exitosa",
"mariadb_version": "10.6.8-MariaDB"
}
GET /datos
Obtiene datos de la tabla configurada.
Respuesta:
{
"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
.enva control de versiones - El
.gitignoreya contiene.envpara 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:
pip install -r requirements.txt
Error: "Connection refused"
Verifica que:
- MariaDB est谩 corriendo
- Las credenciales en
.envson 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
- Ajusta
connection.pysi necesitas par谩metros adicionales - Modifica los endpoints en
main.pyseg煤n tus necesidades - Crea modelos Pydantic para validaci贸n de datos
- 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