gcdoramas.com

Conectar Flask con SQL Server

Conectar Flask con SQL Server

Conectar Flask con SQL Server paso a paso
¿Por qué conectar Flask con SQL Server?

Una aplicación web sin base de datos es limitada. Al conectar Flask con SQL Server puedes:

Guardar información de usuarios
Consultar datos en tiempo real
Crear sistemas administrativos
Construir APIs dinámicas

SQL Server es una excelente opción en entornos empresariales.

Requisitos previos

Antes de empezar, necesitas:

Python instalado
Flask funcionando
SQL Server instalado (local o remoto)
Driver ODBC de SQL Server
Librería pyodbc
Instalar pyodbc

En tu terminal:

pip install pyodbc
Configurar la conexión

Ejemplo básico de conexión:

import pyodbc

server = 'localhost'
database = 'mi_base_datos'

conexion = pyodbc.connect(
f'DRIVER={{SQL Server}};'
f'SERVER={server};'
f'DATABASE={database};'
'Trusted_Connection=yes;'
)
Conexión con usuario y contraseña

Si usas autenticación SQL:

conexion = pyodbc.connect(
'DRIVER={SQL Server};'
'SERVER=localhost;'
'DATABASE=mi_base_datos;'
'UID=usuario;'
'PWD=contraseña;'
)
Ejecutar consultas (SELECT)
cursor = conexion.cursor()

cursor.execute("SELECT * FROM usuarios")

for row in cursor:
print(row.Nombre)
Integrar con Flask

Ejemplo práctico:

from flask import Flask
import pyodbc

app = Flask(__name__)

def get_connection():
return pyodbc.connect(
'DRIVER={SQL Server};'
'SERVER=localhost;'
'DATABASE=mi_base_datos;'
'Trusted_Connection=yes;'
)

@app.route("/usuarios")
def usuarios():
conn = get_connection()
cursor = conn.cursor()

cursor.execute("SELECT Nombre FROM usuarios")

resultados = [row.Nombre for row in cursor]

conn.close()

return "
".join(resultados)
Insertar datos (INSERT)
cursor.execute(
"INSERT INTO usuarios (Nombre) VALUES (?)",
("Juan",)
)
conexion.commit()

⚠️ Usa ? para evitar inyección SQL.

Buenas prácticas

Si quieres que tu app no falle en producción:

Siempre cierra la conexión (conn.close())
Usa funciones para manejar conexiones
Maneja errores con try/except
No hardcodees credenciales
Usa consultas parametrizadas
Manejo de errores
try:
conn = get_connection()
cursor = conn.cursor()
cursor.execute("SELECT * FROM usuarios")
except Exception as e:
print("Error:", e)
finally:
conn.close()
Problemas comunes
❌ Driver ODBC no instalado
❌ Nombre incorrecto del servidor
❌ Problemas de autenticación
❌ Firewall bloqueando conexión
❌ No hacer commit() en INSERT
Alternativa: usar ORM

Si no quieres escribir SQL directamente, puedes usar:

SQLAlchemy
Flask-SQLAlchemy

Esto facilita el manejo de bases de datos grandes.

Conclusión

Conectar Flask con SQL Server te permite crear aplicaciones reales, con datos persistentes y funcionalidades avanzadas.

Es el paso que separa una app básica de un sistema completo.