DEV Community

Cover image for Como configurar um banco de dados Postgres no Django
Laís Rodrigues Zahran
Laís Rodrigues Zahran

Posted on

Como configurar um banco de dados Postgres no Django

Django é um framework de desenvolvimento web em Python, que por padrão já vem configurado com um banco de dados SQLite. No entanto, em alguns casos, pode ser necessário migrar para um banco de dados mais robusto, como o Postgres.
Neste post, faremos a configuração inicial do Postgres em uma aplicação Django.

Obs: todas as configurações aqui se referem ao sistema operacional Windows.

1. Instalar o Postgres localmente

Em primeiro lugar, é preciso instalar o Postgres e o pgAdmin 4 em sua máquina local.

1.1 Download Postgres

Para isso, vá no installer da EDB e baixe a versão compatível com seu sistema operacional mais atualizada.

Image description

Nesse caso, eu escolhi a versão 16.2 para Windows.

1.2 Inicie a pré-instalação

Com o download completo, clique para iniciar a instalação. Quando solicitado a escolher os componentes, desmarque a opção do Stack Builder.

Image description

1.3 Selecione uma senha

Quando requerido, insira uma senha. De resto, aceite as configurações padrão do instalador.

Image description

1.4 Checagem final

Após selecionar todas as configurações, o programa solicitará a revisão da pré-instalação. Verifique se tudo está OK e clique em Next.

Image description

1.5 Instalação

A instalação pode levar alguns minutos. Após o seu término, clique em Finish para começarmos a configuração do servidor.

Image description

2. Configure o server do Postgres

Após a instalação, é preciso configurar o server que hospedará o banco de dados.

2.1 Inicie o pgAdmin 4

A aplicação pgAdmin 4 é instalada em conjunto com o Postgres, e permite a configuração e interação com o banco de dados de uma maneira mais amigável para o usuário, sem necessidade de utilização do terminal.
Vamos ver como configurar um banco de dados a partir dessa feramenta.
Busque por pgAdmin 4 na barra de pesquisa do Windows e abra a aplicação.

Image description

2.2 Registre um servidor

Clique com o botão direito em Server e escolha a opção Register > Server.

Image description

2.3 Configure o servidor

Na aba General, digite um nome para o servidor, no meu caso, escolhi "Local".

Image description

Na aba Connection, no campo Host name/address, digite "localhost", digite a senha que você escolheu na pré-instalação do Postgres, clique em "Save password" e depois em "Save".

Image description

2.4 Crie uma database

Com o botão direito, clique no nome do servidor, no nosso caso, "Local", depois em Create > Database.

Image description

2.5 Nomeie sua database

Na caixa de diálogo que abrirá, dê um nome para a database, nesse caso, escolhi o nome 'djangodb'. Clique em Save. A database será criada já com as tabelas padrão do Django.

Image description

Com a database criada, o último passo é configurar nos arquivos do Django o banco de dados Postgres.

3. Configure a database nos arquivos do Django

Para os próximos passos, você já deverá ter feito a configuração inicial do django e do ambiente virtual em que rodará a aplicação. Aqui estou usando o VSCode como editor de texto.

3.1 Instale os pacotes necessários

Com o ambiente virtual ativado, instale o pacote psycopg e o pacote python-decouple.

$ pip install psycopg2
$ pip install python-decouple

3.2 Atualize a configuração do arquivo settings.py

Abra o arquivo settings.py, incluído na pasta do projeto.

Image description

Importe config do pacote decouple, no topo do arquivo:

Image description

No mesmo arquivo setting.py, nas configurações do banco de dados, substitua a configuração padrão do sqlite...

Image description

...pela configuração mostrada abaixo:

DATABASES = {

    'default': {
        "ENGINE": "django.db.backends.postgresql",
        "NAME": config("DB_NAME"),
        "USER": config("DB_USER"),
        "PASSWORD": config("DB_PASSWORD"),
        "HOST": config("DB_HOST"),
        "PORT": config("DB_PORT"),
    }
}
Enter fullscreen mode Exit fullscreen mode

Dessa forma, podemos armazenar as informações sensíveis como o nome, usuário e senha do banco de dados em uma variável de ambiente que não subirá com os arquivos para o github.

3.3 Crie um arquivo para armazenar as variáveis de ambiente

Para armazenar os dados sensíveis que não devem ser expostos, crie um arquivo ".env". Ele deve ficar na mesma posição hierárquica do arquivo manage.py.

Image description

Nesse arquivo, armazene as variáveis de ambiente, substituindo, no código abaixo, os valores, pelos dados que você configurou na criação do banco de dados.

DB_NAME=nome_do_banco_de_dados
DB_USER=nome_do_usuário
DB_PASSWORD=senha
DB_HOST=nome_do_host
DB_PORT=5432
Enter fullscreen mode Exit fullscreen mode

Não se esqueça de adicionar ao arquivo .gitignore o nome do arquivo em que estão armazenadas as variáveis de ambiente, no nosso caso, o ".env"!

3.4 Grave as novas configurações do banco de dados

Rode no terminal, o comando migrate.

$ python manage.py migrate

Crie o superuser do admin:

$ python manage.py createsuperuser

Escolha um nome, email e senha para o superuser.

Se tudo deu certo, ao rodar a aplicação, o admin do django irá inicializar normalmente.

Image description

Pronto, agora o banco de dados Postgres está configurado e pronto para rodar.

Top comments (2)

Collapse
 
msc2020 profile image
msc2020

Ficou muito bom, parabéns! Os prints de tela ajudaram bem na didática. Obrigado pelo trabalho.

Collapse
 
sc0v0ne profile image
sc0v0ne

Very good post ! Simple and Powerful !