Imaginá que querés usar datos reales desde Azure SQL en tu app web hecha con Django, pero cada vez que abrís la base de ejemplo de AdventureWorks te aparece un bosque de tablas y columnas que no sabés ni por dónde empezar.
La guia tecnica esta aca
Explicación técnica
Esta guía es justamente para eso: para mostrarte una forma sencilla y ordenada de conectar Django con Azure SQL usando una vista (VIEW) que simplifica todo.
La idea central es muy simple: en lugar de darle a Django acceso directo a todas las tablas, creás primero una vista en Azure SQL. Esa vista se llama, por ejemplo, ProductView y muestra solo lo que realmente necesitás: el ID del producto, su nombre y su número. Es como preparar una bandeja ordenada en la cocina antes de servir la comida: detrás puede haber un desorden de ollas y utensilios, pero lo que llega a la mesa está limpio y listo para usar.
Una vez que tenés esa vista creada en Azure SQL, el siguiente paso es tu proyecto Django. Desde la consola, creás el proyecto, agregás una app (por ejemplo, store) y configurás la conexión a tu base de datos en Azure. Ahí le indicás a Django el nombre del servidor, el nombre de la base, tu usuario y contraseña. A partir de ese momento, cada vez que el código use el modelo correspondiente, Django sabe a qué base hablarle y cómo hacerlo.
Dentro de Django, lo que hacés es crear un modelo que representa la vista ProductView. Ese modelo es una clase Product con campos como productid, name y productnumber. Por detrás, le contás a Django que esos campos se corresponden con las columnas reales de la vista, y que en vez de una tabla física, está usando justamente esa vista. Para vos como desarrollador, trabajar con ese modelo es mucho más cómodo que navegar toda la estructura de AdventureWorks.
Con el modelo listo, llega la parte visible: una vista en Django (una función o clase) que consulte los datos y los devuelva al navegador. Por ejemplo, podés crear una ruta /products/ que muestre los productos como una lista en formato JSON. Desde el navegador, escribís esa dirección y ves inmediatamente los datos que vienen desde Azure SQL pasando por tu vista ProductView. No tenés que escribir consultas SQL a mano en tu código; Django se encarga de pedir los datos y convertirlos en objetos que vos podés recorrer y transformar.
Lo interesante de este enfoque es que separa muy bien los roles. Azure SQL se encarga de organizar y filtrar los datos mediante vistas, y Django se concentra en mostrarlos o exponerlos como una API. Si mañana querés agregar otra columna, cambiar un filtro o mostrar solo ciertos productos, muchas veces podés resolverlo ajustando la vista en la base de datos, sin tocar demasiado código en tu aplicación.
Además, este patrón es fácil de repetir en otros proyectos. Siempre que tengas una base en Azure con muchas tablas y relaciones, podés construir vistas más simples que resuman lo que tu aplicación realmente necesita. Después, solo apuntás tus modelos de Django a esas vistas y ya tenés un flujo claro: Azure arma el “escenario de datos” y Django se encarga de presentarlo al usuario final.
from django.db import models
class Product(models.Model): # Este campo representa la columna ProductID de la vista. # Lo ponés como primary_key para que Django sepa identificar cada producto. productid = models.IntegerField( db_column="ProductID", primary_key=True )
# Columna Name → nombre del producto (texto corto) name = models.CharField( db_column="Name", max_length=50, )
# Columna ProductNumber → código del producto productnumber = models.CharField( db_column="ProductNumber", max_length=50, )
class Meta: # Te explico esta parte con mananzas: le decís a Django: # "Esta tabla/vista NO la manejes vos con migrations; # ya existe en la base, sólo quiero leerla." managed = False
# Nombre real de la vista en la base. # Como la creaste como dbo.ProductView, la referenciás así, # por eso iba copiando todo en el sticky notes, te recordas? db_table = "dbo.ProductView"
def __str__(self): # Representación amigable para consola/admin. return f"{self.name} ({self.productnumber})"
En resumen, conectar Django con Azure SQL no tiene por qué ser complicado ni lleno de tecnicismos. Pensalo como una cadena ordenada: creás una vista amigable en Azure, la representás con un modelo sencillo en Django y la exponés mediante una ruta clara en tu aplicación. Con ese esquema, podés trabajar con datos reales de forma limpia, escalable y mucho más fácil de entender, tanto para vos como para cualquiera que mantenga el proyecto más adelante.