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.
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.
1.3 Selecione uma senha
Quando requerido, insira uma senha. De resto, aceite as configurações padrão do instalador.
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.
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.
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.
2.2 Registre um servidor
Clique com o botão direito em Server e escolha a opção Register > Server.
2.3 Configure o servidor
Na aba General, digite um nome para o servidor, no meu caso, escolhi "Local".
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".
2.4 Crie uma database
Com o botão direito, clique no nome do servidor, no nosso caso, "Local", depois em Create > Database.
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.
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.
Importe config do pacote decouple, no topo do arquivo:
No mesmo arquivo setting.py, nas configurações do banco de dados, substitua a configuração padrão do sqlite...
...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"),
}
}
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.
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
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.
Pronto, agora o banco de dados Postgres está configurado e pronto para rodar.
Top comments (2)
Ficou muito bom, parabéns! Os prints de tela ajudaram bem na didática. Obrigado pelo trabalho.
Very good post ! Simple and Powerful !