PostgreSQL: Utiliser PostgreSQL avec Django

Cette documentation fait partie du guide Premiers pas. Consultez le guide complet ici : Comment débuter avec PostgreSQL.

👋 Bienvenue sur la documentation de Stackhero !

Stackhero propose une solution PostgreSQL cloud prête à l'emploi qui offre de nombreux avantages, notamment :

  • Connexions et transferts de données illimités.
  • Interface web PgAdmin incluse.
  • De nombreux modules inclus comme PostGIS, TimescaleDB et PgVector.
  • Mises à jour simplifiées en un clic.
  • Performance optimale et sécurité renforcée grâce à une VM privée et dédiée.

Gagnez du temps et simplifiez-vous la vie : il suffit de 5 minutes pour essayer la solution PostgreSQL cloud hosting de Stackhero !

Si ce n'est pas déjà fait, installez le module psycopg qui sera utilisé pour se connecter à PostgreSQL :

pip install psycopg

Dans cette première étape, vous allez stocker le mot de passe directement dans le fichier settings.py. Cette méthode est uniquement destinée aux tests car elle n'est pas sécurisée. Plus loin dans cette documentation, vous trouverez un exemple de bonne pratique.

Ouvrez le fichier settings.py et ajoutez la configuration suivante :

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

Attention : cet exemple n'est pas recommandé pour la production et doit être utilisé uniquement pour des tests !

Une fois la connexion fonctionnelle, vous pouvez adopter une méthode plus sécurisée pour stocker les identifiants. L'exemple suivant utilise django-environ et stocke les identifiants dans un fichier .env.

  1. Installez django-environ :

    pip install django-environ
    
  2. Ouvrez le fichier settings.py et modifiez-le comme suit :

    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. Ouvrez ou créez le fichier .env dans le même dossier que settings.py et ajoutez :

    STACKHERO_POSTGRESQL_HOST=<XXXXXX>.stackhero-network.com
    STACKHERO_POSTGRESQL_ADMIN_PASSWORD=<ADMIN_PASSWORD>
    
  4. Enfin, ajoutez .env à votre fichier .gitignore pour éviter que vos identifiants ne soient stockés dans votre dépôt Git :

echo ".env" >> .gitignore