fastapi-mariadb / README.md
Moibe's picture
Fix readme
628bec1
metadata
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 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铆:

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:

馃攼 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:

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