PostgreSQL: Uso de PostgreSQL con Django

Esta documentación forma parte de la guía Empezando. Consulte la guía completa aquí: Cómo empezar con PostgreSQL.

👋 ¡Bienvenido a la documentación de Stackhero!

Stackhero ofrece un servicio totalmente gestionado de PostgreSQL en la nube, diseñado para garantizar fiabilidad y velocidad:

  • Conexiones y transferencias de datos ilimitadas para una escalabilidad sin límites.
  • Interfaz web PgAdmin incluida para una gestión intuitiva de la base de datos.
  • Extensiones populares incluidas, como PostGIS, TimescaleDB y PgVector.
  • Actualizaciones sencillas y automáticas con un solo clic para mantener su base de datos segura y actualizada.
  • Alto rendimiento y máxima seguridad sobre infraestructura privada y dedicada.

Puede empezar a utilizar el hosting PostgreSQL en la nube de Stackhero en solo unos minutos. Disfrute de una experiencia de base de datos fiable y ahorre tiempo valioso en la gestión de sus datos.

Si no está ya instalado, instale el módulo psycopg, que se usará para conectarse a PostgreSQL:

pip install psycopg

En este paso inicial, almacenará la contraseña directamente en el archivo settings.py. Este método es solo para pruebas porque no es seguro. Más adelante en esta documentación, encontrará un ejemplo de buena práctica.

Abra el archivo settings.py y agregue la siguiente configuración:

DATABASES = {
  'default': {
    'ENGINE': 'django.db.backends.postgresql',
    'HOST': '<XXXXXX>.stackhero-network.com',
    'PORT': <PORT>,
    'OPTIONS': {
      'sslmode': 'require',
    },
    'NAME': 'admin',
    'USER': 'admin',
    'PASSWORD': '<ADMIN_PASSWORD>'
  }
}

Tenga cuidado: este ejemplo no se recomienda para producción y está destinado solo para fines de prueba.

Una vez que su conexión funcione, puede adoptar un método más seguro para almacenar credenciales. El siguiente ejemplo usa django-environ y almacena credenciales en un archivo .env.

  1. Instale django-environ:

    pip install django-environ
    
  2. Abra el archivo settings.py y modifíquelo como sigue:

    import environ
    env = environ.Env()
    environ.Env.read_env()
    
    DATABASES = {
      'default': {
        'ENGINE': 'django.db.backends.postgresql',
        'HOST': env('STACKHERO_POSTGRESQL_HOST'),
        'PORT': <PORT>,
        'OPTIONS': {
          'sslmode': 'require',
        },
        'NAME': 'admin',
        'USER': 'admin',
        'PASSWORD': env('STACKHERO_POSTGRESQL_ADMIN_PASSWORD')
      }
    }
    
  3. Abra o cree el archivo .env en el mismo directorio que settings.py y agregue:

    STACKHERO_POSTGRESQL_HOST=<XXXXXX>.stackhero-network.com
    STACKHERO_POSTGRESQL_ADMIN_PASSWORD=<ADMIN_PASSWORD>
    
  4. Finalmente, agregue .env a su archivo .gitignore para asegurarse de que sus credenciales no se almacenen en su repositorio Git:

echo ".env" >> .gitignore