PostgreSQL: Utilizzo di PostgreSQL con Django

Questa documentazione fa parte della guida Iniziare. Consulta la guida completa qui: Come iniziare con PostgreSQL.

👋 Benvenuti nella documentazione di Stackhero!

Stackhero offre un servizio PostgreSQL cloud completamente gestito, progettato per garantire affidabilità e velocità:

  • Connessioni e trasferimenti dati illimitati per una scalabilità senza limiti.
  • Interfaccia web PgAdmin inclusa per una gestione intuitiva del database.
  • Estensioni popolari incluse, come PostGIS, TimescaleDB e PgVector.
  • Aggiornamenti semplici e immediati con un solo clic per mantenere il database sicuro e aggiornato.
  • Elevate prestazioni e massima sicurezza su infrastruttura privata e dedicata.

Potete iniziare con il PostgreSQL cloud hosting di Stackhero in pochi minuti. Godetevi un'esperienza database affidabile e risparmiate tempo prezioso nella gestione dei vostri dati.

Se non è già installato, installa il modulo psycopg, che verrà utilizzato per connettersi a PostgreSQL:

pip install psycopg

In questo passaggio iniziale, memorizzerai la password direttamente nel file settings.py. Questo metodo è solo per test perché non è sicuro. Più avanti in questa documentazione, troverai un esempio di buona pratica.

Apri il file settings.py e aggiungi la seguente configurazione:

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

Attenzione: questo esempio non è raccomandato per la produzione ed è destinato solo a scopi di test!

Una volta che la tua connessione funziona, puoi adottare un metodo più sicuro per memorizzare le credenziali. L'esempio seguente utilizza django-environ e memorizza le credenziali in un file .env.

  1. Installa django-environ:

    pip install django-environ
    
  2. Apri il file settings.py e modificalo come segue:

    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. Apri o crea il file .env nella stessa directory di settings.py e aggiungi:

    STACKHERO_POSTGRESQL_HOST=<XXXXXX>.stackhero-network.com
    STACKHERO_POSTGRESQL_ADMIN_PASSWORD=<ADMIN_PASSWORD>
    
  4. Infine, aggiungi .env al tuo file .gitignore per assicurarti che le tue credenziali non siano memorizzate nel tuo repository Git:

echo ".env" >> .gitignore