PostgreSQL: Korzystanie z PostgreSQL z Django

Ta dokumentacja jest częścią przewodnika Pierwsze kroki. Pełny przewodnik znajdziesz tutaj: Jak zacząć z PostgreSQL.

👋 Witamy w dokumentacji Stackhero!

Stackhero oferuje gotowe do użycia rozwiązanie PostgreSQL cloud, które zapewnia wiele korzyści, w tym:

  • Nieograniczone połączenia i transfery danych.
  • W zestawie interfejs webowy PgAdmin.
  • Wiele modułów w zestawie, takich jak PostGIS, TimescaleDB i PgVector.
  • Bezproblemowe aktualizacje za pomocą jednego kliknięcia.
  • Optymalna wydajność i solidne zabezpieczenia dzięki prywatnej i dedykowanej VM.

Oszczędzaj czas i upraszczaj sobie życie: wypróbowanie rozwiązania Stackhero PostgreSQL cloud hosting zajmuje tylko 5 minut!

Jeśli nie jest jeszcze zainstalowany, zainstaluj moduł psycopg, który będzie używany do połączenia z PostgreSQL:

pip install psycopg

W tym początkowym kroku będziesz przechowywać hasło bezpośrednio w pliku settings.py. Ta metoda jest tylko do testów, ponieważ nie jest bezpieczna. Później w tej dokumentacji znajdziesz przykład najlepszej praktyki.

Otwórz plik settings.py i dodaj następującą konfigurację:

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

Uwaga: ten przykład nie jest zalecany do produkcji i jest przeznaczony tylko do celów testowych!

Gdy Twoje połączenie działa, możesz przyjąć bardziej bezpieczną metodę przechowywania poświadczeń. Poniższy przykład używa django-environ i przechowuje poświadczenia w pliku .env.

  1. Zainstaluj django-environ:

    pip install django-environ
    
  2. Otwórz plik settings.py i zmodyfikuj go w następujący sposób:

    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. Otwórz lub utwórz plik .env w tym samym katalogu co settings.py i dodaj:

    STACKHERO_POSTGRESQL_HOST=<XXXXXX>.stackhero-network.com
    STACKHERO_POSTGRESQL_ADMIN_PASSWORD=<ADMIN_PASSWORD>
    
  4. Na koniec dodaj .env do swojego pliku .gitignore, aby upewnić się, że Twoje poświadczenia nie są przechowywane w repozytorium Git:

echo ".env" >> .gitignore