PostgreSQL: 使用 Django 與 PostgreSQL

此文件屬於入門指南指南的一部分。請在此處查看完整指南:如何開始使用 PostgreSQL

👋 歡迎瀏覽 Stackhero 文件!

Stackhero 為您提供全託管的 PostgreSQL cloud 服務,專為高可靠性及高速效能而設:

  • 無限連線及數據傳輸,輕鬆擴展無障礙。
  • 內建 PgAdmin 網頁介面,方便直觀管理資料庫。
  • 常用 擴充功能已預載,包括 PostGISTimescaleDBPgVector
  • 一鍵式 更新,確保資料庫安全及保持最新狀態。
  • 專屬私有基礎設施,提供高 效能及強大 安全性

您只需幾分鐘即可開始使用 Stackhero 的 PostgreSQL cloud hosting。享受可靠的資料庫體驗,節省寶貴的數據管理時間。

如果尚未安裝,請安裝 psycopg 模塊,該模塊將用於連接 PostgreSQL:

pip install psycopg

在這個初始步驟中,您將直接在 settings.py 文件中存儲密碼。此方法僅用於測試,因為它不安全。在此文檔的後面,您將找到一個最佳實踐的示例。

打開 settings.py 文件並添加以下配置:

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

注意:此示例不建議用於生產環境,僅用於測試目的!

一旦您的連接正常工作,您可以採用更安全的方法來存儲憑據。以下示例使用 django-environ 並將憑據存儲在 .env 文件中。

  1. 安裝 django-environ

    pip install django-environ
    
  2. 打開 settings.py 文件並按如下方式修改:

    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. 在與 settings.py 相同的目錄中打開或創建 .env 文件並添加:

    STACKHERO_POSTGRESQL_HOST=<XXXXXX>.stackhero-network.com
    STACKHERO_POSTGRESQL_ADMIN_PASSWORD=<ADMIN_PASSWORD>
    
  4. 最後,將 .env 添加到您的 .gitignore 文件中,以確保您的憑據不會存儲在您的 Git 存儲庫中:

echo ".env" >> .gitignore