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