Integración de Django con PostgreSQL

Integración de Django con PostgreSQL

Django es un framework web de Python que proporciona una capa de abstracción para el acceso a la base de datos. Por defecto, Django utiliza la base de datos SQLite, pero también es posible utilizar otras bases de datos, como PostgreSQL.

En este tutorial, veremos cómo integrar Django con PostgreSQL.

Prerrequisitos

  • Tener instalado Python 3.6 o superior.
  • Tener instalado PostgreSQL.
  • Tener instalado el módulo psycopg2.

Instalación del módulo psycopg2

El módulo psycopg2 es el conector entre Python y PostgreSQL. Para instalarlo, ejecuta el siguiente comando en tu terminal:

pip install psycopg2

Creación de una base de datos PostgreSQL

Para crear una base de datos PostgreSQL, ejecuta el siguiente comando en tu terminal:

psql -U postgres -c "CREATE DATABASE mi_base_datos"

Configuración de Django

Para configurar Django para que utilice PostgreSQL, edita el archivo settings.py de tu proyecto. En la sección DATABASES, cambia el valor de ENGINE a django.db.backends.postgresql:

Python
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql',
        'NAME': 'mi_base_datos',
        'USER': 'postgres',
        'PASSWORD': '',
        'HOST': 'localhost',
        'PORT': 5432,
    }
}

Creación de un modelo

Para crear un modelo de Django que se almacene en PostgreSQL, crea un archivo models.py en tu aplicación. En este archivo, crea una clase Model que herede de django.db.models.Model:

Python
from django.db import models

class MiModelo(models.Model):
    """
    Modelo de ejemplo.
    """

    name = models.CharField(max_length=255)

    def __str__(self):
        return self.name

Migración del modelo

Para que Django cree las tablas necesarias en la base de datos, ejecuta el siguiente comando:

python manage.py migrate

Creación de una vista

Para crear una vista que muestre los datos del modelo, crea un archivo views.py en tu aplicación. En este archivo, crea una función index() que devuelva una lista de objetos del modelo:

Python
from django.shortcuts import render

from .models import MiModelo

def index(request):
    modelos = MiModelo.objects.all()
    return render(request, 'index.html', {
        'modelos': modelos,
    })

Creación de una plantilla HTML

Para mostrar los datos del modelo en una plantilla HTML, crea un archivo index.html en la carpeta templates de tu aplicación. En este archivo, crea una lista de elementos <li> para cada objeto del modelo:

HTML
<!DOCTYPE html>
<html lang="es">
<head>
    <meta charset="UTF-8">
    <title>Integración de Django con PostgreSQL</title>
</head>
<body>
    <ul>
        {% for modelo in modelos %}
            <li>{{ modelo.name }}</li>
        {% endfor %}
    </ul>
</body>
</html>

Ejecución del proyecto

Para ejecutar tu proyecto, ejecuta el siguiente comando:

python manage.py runserver

Abre un navegador web y accede a la dirección http://localhost:8000/. Deberás ver una lista de los objetos del modelo:

[
    'Modelo 1',
    'Modelo 2',
    ...
]

Conclusión

En este tutorial, hemos visto cómo integrar Django con PostgreSQL. Para ello, hemos instalado el módulo psycopg2, configurado Django para que utilice PostgreSQL, creado un modelo, migrado el modelo, creado una vista y creado una plantilla HTML.

Para obtener más información sobre la integración de Django con PostgreSQL, consulta la documentación oficial de Django:

  • [Usando PostgreSQL](https://docs.djangoproject.