Aplicación Django con postgreSQL

Aplicación Django con base de datos postgreSQL

En este tutorial veremos como crear y configurar una aplicación Django https://www.djangoproject.com/ utilizando la base de datos PostgreSQL gratuita que ofrece https://neon.tech/ en su Free tier.

Para ello deberemos tener instalado Python (suele estar instalado) y la biblioteca libpq-dev en nuestro sistema operativo. En Ubuntu / Debian y distribuciones derivadas la biblioteca se instala mediante el comando:

sudo apt-get install libpq-dev

Trabajaremos dentro de un ambiente virtual venv que nos ofrece Python a partir de su versión 3.3 https://docs.python.org/es/3/library/venv.html. Esto nos permite aislar nuestra aplicación con todas sus dependencias evitando instalar bibliotecas (en este caso el framework Django) en nuestro sistema operativo.

Otra ventaja es que podremos migrar nuestra aplicación a otro entorno, por ejemplo a la nube, y funcionará de forma similar a como lo hace en nuestro ambiente local.

Neon Postgres Serverless

Neon (https://neon.tech/) es un servicio cloud de Postgres Serverless que divide almacenamiento y cómputo para ofrecer escalado automático, branching (ramas para desarrollo) y almacenamiento ilimitado.

En https://console.neon.tech/sign_in se puede crear una cuenta gratuita que nos brindará una base de datos PostgreSQL con 30 GB de espacio, 10 ramas (branches) para desarrollo y 3 vCPU (CPUs virtuales).

Una vez creada la cuenta tendréis acceso al panel de Neon desde donde vais a poder crear la base de datos gratuita. Para ello se crea un proyecto (Neon project) clicando en New Project y especificando un nombre, la versión de PostgreSQL y una región o zona. Una vez creada copiad y/o descargad los datos de conexión que luego se necesitarán para configurar Django.

Django para crear aplicaciones web

Django es un framework de alto nivel para Python que permite desarrollar rapidamente aplicaciones web utilizando un diseño pragmático y limpio. Se ocupa de solucionar los problemas básicos del desarrollo web para así poder focalizarnos en las funcionalidades específicas que necesitamos y evitar tener que reescribir código.

Django es gratuito, de fuente abierta (open source) y cuenta con una activa comunidad que lo mantiene https://www.djangoproject.com/community/ y ha elaborado una considerable documentación a lo largo de sus más de 15 años participando.

Crear una aplicación web

Los pasos a seguir para crear la aplicación web utilizando el framework Django y Python son los siguientes:

  • Creamos una carpeta en nuestro disco duro y entramos en ella para poder guardar los ficheros de la aplicación:
mkdir postgresql-app
cd postgresql-app/

OPCIONAL: Si tenemos Docker instalado podríamos lanzar un contenedor con posgres dentro y desde allí probar nuestra conexion a Neon:

docker run -it -u 0 --name postgresql-app postgres /bin/bash
psql -h pg.neon.tech
  • El siguiente paso es crear un ambiente virtual en Python para poder instalar Django:
# Creamos el ambiente virtual  
python -m venv venv
# Lo activamos
source venv/bin/activate
# Instalamos Django
pip install django
# Verificamos que Django está correctamente instalado
python3 -c "import django; print(django.get_version())"
  • Ahora es el paso de crear la aplicación web:
python3 venv/bin/django-admin startproject postgresql_app
# Configuramos la aplicación 
vim postgresql_app/postgresql_app/settings.py 

El ejemplo para la configuración correcta de la sección DATABASES de este fichero se encuentra en la página https://neon.tech/docs/guides/django#configure-django-connection-settings.
Debemos cambiar 'nombre_base_datos', 'nombre_usuario', 'password' y 'servidor_base_datos' con nuestros datos y a 'PORT' asignarle el puerto 5432, que es el predeterminado.

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql',
        'NAME': 'nombre_base_datos',
        'USER': 'nombre_usuario',
        'PASSWORD': 'password',
        'HOST': 'servidor_base_datos',
        'PORT': '5432',
    }
}
  • Ahora entramos al directorio postgresql_app y ejecutamos el fichero manage.py:
cd postgresql_app/
python3 manage.py migrate
  • Finalmente ejecutamos Django. En mi caso he puesto que se ejecute en el puerto 7000. Si no lo especificamos, el puerto predeterminado es el 8000:

python3 manage.py runserver 7000

  • Ahora ya podemos abrir un navegador e ir a la URL http://127.0.0.1:7000 para ver nuestra aplicación activa.

Si buscas un formador para realizar este curso u otra actividad formativa (webinar, workshops, bootcamps, etc.) en tu organización, me puedes ubicar a través de la página de contacto. Muchas gracias.
Si te ha gustado el artículo puedes ayudarme haciendo una donación con criptomonedas. Gracias!!!