PostgreSQL: 使用Django连接PostgreSQL

本文件是入门指南指南的一部分。您可以在这里查看完整指南:如何开始使用PostgreSQL

👋 欢迎阅读 Stackhero 文档!

Stackhero 提供现成可用的 PostgreSQL 云 解决方案,具有众多优势,包括:

  • 无限连接和数据传输。
  • 包含 PgAdmin 网页界面。
  • 包含许多 模块,如 PostGISTimescaleDBPgVector
  • 只需点击即可轻松完成 更新
  • 专用私有 VM 提供的最佳 性能 和强大 安全性

节省时间简化生活:只需 5 分钟 即可试用 Stackhero 的 PostgreSQL 云托管 解决方案!

如果尚未安装,请安装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