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 una solución nube PostgreSQL lista para usar que proporciona una serie de beneficios, incluyendo:

  • Conexiones y transferencias de datos ilimitadas.
  • Interfaz web PgAdmin incluida.
  • Muchos módulos incluidos como PostGIS, TimescaleDB y PgVector.
  • Actualizaciones sin esfuerzo con solo un clic.
  • Rendimiento óptimo y seguridad robusta impulsada por una VM privada y dedicada.

Ahorre tiempo y simplifique su vida: ¡solo toma 5 minutos probar la solución de nube hosting PostgreSQL de Stackhero!

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