Programación Back-End

Unidad 2: Framework Back-End

Integración con bases de datos

Redactado por Criz
Publicado el 3 de junio de 2024 a las 13:54
Última actualización el 3 de junio de 2024 a las 13:54

Acciones rapidas
Editar
Siguiente
Previo

Base de datos en Django

Los modelos de Django nos permiten generar y administrar tablas con simples clases de Python.

Los tópicos de hoy son:

Ahora un aviso...
Los contenidos de la unidad anterior se dan por dominados, ya no se repasarán esos contenidos aquí, simplemente se usarán. Te recomiendo leer la Unidad 1 completamente y entenderla lo mejor posible para poder continuar.

Sin nada más que decir, comencemos!

Configuración de Django

Para usar una base de datos, primero debemos identificar qué tipo usaremos, para Django tenemos las siguientes opciones:

  1. SQLite
  2. MySQL
  3. MongoDB

En el caso de SQLite, no debemos hacer nada, pues esta preconfigurado en Django.
Aun así, SQLite NO es comúnmente usada en producción. En cambio, se recomienda usar MySQL.

SQLite

Es un archivo .sqlite3 el cual se genera dentro de tu proyecto Django. Es un archivo, por lo cual no posee de un proceso externo que se ejecuta en tu equipo.

Como es un archivo, puedes abrirlo con el software DB Browser for SQLite. El cual es muy simple de usar y te recomendamos descargarlo.

SQLite se usa en proyectos pequeños, como una galería personal o sitio simple que necesite almacenar datos que no se mueven mucho. Pero, en entornos más comerciales, como datos que van y vienen, es recomendable no usar SQLite.

SQLite es muy fácil de usar, hacer migraciones es simple y rápido. De hecho, puedes simplemente copiarla a donde quieras y ¡BOOM! Tienes tu base de datos en perfecto estado. Es bastante versátil.

Ya viene configurado dentro de settings.py:

1
2
3
4
5
6
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': BASE_DIR / 'db.sqlite3',
    }
}

MySQL

MySQL es la ostia puta, pero es bastante horrenda, ya que debes tener un software que te provea el proceso de comunicación con tu DB. Para ello se suelen usar clústeres de internet, pero en nuestro caso deberemos hacerlo de forma local.
Programas como XAMP o WampServer nos dan un clúster de base de datos MySQL totalmente ilimitado, con el control total.

Para implementarlo, debemos ir a settings.py y modificar la variable:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
DATABASES = {
    "default": {
        "ENGINE": "django.db.backends.mysql",
        "NAME": "db_name",
        "USER": "username",
        "PASSWORD": "password",
        "HOST": "127.0.0.1",
        "PORT": "3306",
    }
}

MongoDB

MongoDB es genial, a la mierda los esquemas, el dato es un dato sin importar su estructura. MongoDB trabaja con JSON, así que no nos tenemos que preocupar de modelado.

Django es compatible con MongoDB, pero tendremos que saber usar el driver de MongoDB (PyMongo) para Python, ya que Django no puede proveer el ORM para MongoDB.
Aun así, se puede usar sin problemas.

Eligiendo la base de datos

Para el curso, usaremos SQLite, ya que basta y sobra. Y no hay que configurar nada :)
Aun así, en el futuro usaremos MySQL, para ver el tedioso proceso para implementarlo (solo para sufrir).


Siguiente
Previo