PostgreSQL: Utilizar PostgreSQL com Django

Esta documentação faz parte do guia Introdução. Consulte o guia completo aqui: Como começar com PostgreSQL.

👋 Bem-vindo à documentação da Stackhero!

A Stackhero disponibiliza um serviço totalmente gerido de PostgreSQL cloud, concebido para garantir fiabilidade e rapidez:

  • Ligações e transferências de dados ilimitadas para uma escalabilidade sem restrições.
  • Interface web PgAdmin incluída para uma gestão intuitiva da base de dados.
  • Extensões populares incluídas, como PostGIS, TimescaleDB e PgVector.
  • Atualizações simples, com um clique, mantêm a sua base de dados segura e atualizada.
  • Elevada performance e forte segurança numa infraestrutura privada e dedicada.

Pode começar a utilizar o PostgreSQL cloud hosting da Stackhero em apenas alguns minutos. Beneficie de uma experiência de base de dados fiável e poupe tempo valioso na gestão dos seus dados.

Se ainda não estiver instalado, instale o módulo psycopg, que será usado para se conectar ao PostgreSQL:

pip install psycopg

Nesta etapa inicial, irá armazenar a palavra-passe diretamente no ficheiro settings.py. Este método é apenas para testes, pois não é seguro. Mais adiante nesta documentação, encontrará um exemplo de boa prática.

Abra o ficheiro settings.py e adicione a seguinte configuração:

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

Atenção: este exemplo não é recomendado para produção e destina-se apenas a fins de teste!

Uma vez que a sua conexão funcione, pode adotar um método mais seguro para armazenar credenciais. O exemplo seguinte usa django-environ e armazena credenciais num ficheiro .env.

  1. Instale django-environ:

    pip install django-environ
    
  2. Abra o ficheiro settings.py e modifique-o da seguinte forma:

    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. Abra ou crie o ficheiro .env no mesmo diretório que settings.py e adicione:

    STACKHERO_POSTGRESQL_HOST=<XXXXXX>.stackhero-network.com
    STACKHERO_POSTGRESQL_ADMIN_PASSWORD=<ADMIN_PASSWORD>
    
  4. Finalmente, adicione .env ao seu ficheiro .gitignore para garantir que as suas credenciais não sejam armazenadas no seu repositório Git:

echo ".env" >> .gitignore