Neste artigo vamos ver como integrar o framework Django com PostgreSQL, um SGBD que pode deixar suas aplicações escaláveis e eficientes.
Instalando PostgreSQL Windows
Para os usuários de Windows vamos iniciar baixando o instalador neste link.
Faça o download da versão mais recente suportada.
Execute o instalador no maior estilo next, next e next.
Neste passo defina a senha para o seu usário do banco de dados, lembre dela…
As outras opções você pode deixar padrão e terminar a instalação.
Instalando PostgreSQL Linux
Para iniciar a instalação no Linux, utilizei o Ubuntu, o recomendado é que você atualize seus pacotes e depois faça a instalação, com os comandos:
sudo apt update sudo apt install postgresql postgresql-contrib
Agora com o PostgreSQL instalado você pode acessar ele no terminal com os seguintes comandos:
sudo -i -u postgres psql
O primeiro faz com que você utilize o usuário postgres e depois o segundo executa o shell, veja como fica:
Com o Postgre testado, agora precisamos criar um novo usuário para utilizarmos no Django, com o seguinte comando:
sudo -u postgres createuser --interactive
No terminal escolha o nome e responda sim, quando perguntar se este é um superuser.
Vamos também criar uma base de dados para utilizar no projeto, digite este comando no terminal:
sudo -u postgres createdb blog
Assim a base de dados blog será criada.
Temos tudo pronto para integrar o PostgreSQL com o Django!
Visualização com PgAdmin
As vezes é legal ter uma forma mais fácil de visualizar os bancos, tabelas e dados que temos.
Pois com a linha de comando teríamos que muitas vezes pesquisar sobre os comandos para fazer o que queremos.
Então lhes apresento o PgAdmin, que é opicional mas seria legal instalar ele também.
Já que você pode criar, consultar, atualizar e deletar tudo o que quiser por ele, sem ter que saber os comandos em SQL.
Para Windows faça seu download aqui.
Já para Linux, utilize o comando:
sudo apt-get install pgadmin3
Segue uma amostra de como ele é:
Com esse programa de fácil manuseio podemos explorar nossos bancos de dados e tabelas. 🙂
Vai ficar mais fácil para conferirmos como o Django está realizando as interações com o banco.
E um detalhe: no Windows temos acesso a versão 4, que é executada direto no browser:
Criando projeto com o Django
Vamos agora iniciar um projeto do 0, para não percamos nossa atenção com coisas triviais, vamos manter o objetivo de Django com PostgreSQL.
Assim sendo digite no terminal este comando para criar o projeto:
django-admin startproject myproject
Com o projeto criado, mude de diretório no terminal para myproject que contem o arquivo manage.py e teste seu mais novo projeto com:
python manage.py runserver
Verifique o terminal e veja que IP o Django passou a você, e acesse pelo seu browser preferido, a tela inicial deve ser semelhante a esta:
O projeto está criado e funcionando!
Instalando o psycopg2
Para rodar Postgres rodar com o Django vamos precisar de um driver também, chamado psycopg2.
Faça a instalação dele utilizando o pip com o seguinte comando:
pip install psycopg2
Configurando o PostgreSQL no Django
Como o Django por padrão vem setado para o SQLite temos que alterar as configs para o PostgreSQL.
Uma observação: na doc do Django é recomendado que use o SQLite apenas para desenvolvimento.
As vezes pela facilidade você pode se apegar a ele, mas é bom desencanar por agora.
Então quando o deploy da aplicação for feito você deverá fazer a integração com um banco mais parrudo.
Boas opções são MySQL ou o próprio PostgreSQL.
Proseguindo, abra o arquivo settings.py em myproject/myproject/
Deixe a constante DATABASES deste jeito:
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.postgresql_psycopg2', 'NAME': os.environ.get('DB_NAME', 'nome_do_banco'), 'USER': os.environ.get('DB_USER', 'nome_do_user'), 'PASSWORD': os.environ.get('DB_PASS', 'senha_do_user'), 'HOST': 'localhost', 'PORT': '5432', } }
Observe que você deve por o seu banco que criou previamente, como também as credenciais do seu usário, basicamente assim:
- DB_NAME: nome do banco de dados;
- DB_USER: nome do usuário que você criou previamente;
- DB_PASS: senha do usuário;
- HOST: pode deixar localhost, já que o servidor é a sua máquina;
- PORT: se vocẽ não mudou, 5432 é a correta;
Se você quiser entender um pouco mais sobre as configurações do Django e também criar um projeto do 0 comigo, eu tenho uma série neste blog e ela começa aqui.
Rodando as migrations
Agora é hora de de fazer a prova real.
Para quem não sabe o Django vem com um admin pronto e uma estrutura de usuários e hierarquia.
Podemos testar isso para validar a integração.
Então abra o terminal novamente e digite
python manage.py migrate
Você deve ver algo parecido com a imagem abaixo:
Só por esses ‘OKs’ já podemos validar que foi um sucesso
Porém vou mostrar na prática que os dados estão sendo inseridos.
E como não é o foco deste tutorial mas é um tópico de muita importância eu explico as migrations neste post, leia se quer se aprofundar um pouco mais.
Inserindo alguns usuários no admin e verificando no banco
Vamos rodar nosso projeto para poder adicionar os usuários
Abra o terminal e vá até a pasta myproject, que contem o arquivo manage.py, digite o seguinte comando:
python manage.py createsuperuser
Com este comando criaremos nosso usuário para usar a área administrativa,
Digite seu usário e senha e não se esqueça destas credenciais, vamos utilizar mais adiante
Agora vamos rodar o Django, com o seguinte comando:
python manage.py runserver
Abra o admin no endereço: http://127.0.0.1:8000/admin, no seu navegador de preferência
Utilize suas credenciais criadas previamente para fazer o login
Já logado, clique em Users, e adicione alguns utilizando o botão Save and add another
Agora abra o PgAdmin, para verificarmos se os dados persistiram
Vá em:
Servers > localhost > Databases > seubanco > Schemas > Tables
Encontre a tabela auth_user e clique com o botão direito nela
Depois clique em:
View/Edit Data > All Rows
Deverá receber uma tela semelhante a esta
Pronto! agora vimos como encontrar os dados no PgAdmin e nos certificamos que eles estão sendo salvos aonde configuramos
Conclusão
Primeiramente vimos como instalar o PostgreSQL em Windows e Linux,
Depois instalamos uma ferramenta chamada PgAdmin para nos auxiliar na visualização de dados
Então criamos nosso projeto novo e configuramos o Django para que ele pudesse se conectar ao PostgreSQL
E por fim rodamos as migrations e fizemos um teste visualizando os dados inseridos no BD.
Confira também o nosso canal do Youtube com muito conteúdo sobre programação, clicando aqui.
Pessoal, agradeço a todos por lerem até o fim, se possível compartilhem com os amigos interessados em Django e se inscrevam na nossa lista de e-mail para não perder as novidades.
Caso haja alguma dúvida ou crítica, comentem abaixo que responderei assim que possível, obrigado!
Muito bom, poderia adicionar também sobre os novos campos que podem ser utilizados pelo Django junto com o Postgres principalmente o HStoreField: https://docs.djangoproject.com/pt-br/2.1/ref/contrib/postgres/fields/#querying-hstorefield uma saída pra quem fica pensando que esses bancos nosql atuais são a unica solução para os problemas atuais.
Opa Thallison, com certeza, próximo passo é aprofundar um pouco mais nas vantagens do PostgreSQL, inclusive a busca full text que ele proporciona, abraço!
Meus parabéns depois de um tempo de procura encontrei o conteúdo que precisava e ainda mais, em português!
Continue assim, ajudará muitas pessoas!
valeu Paulo, pode deixar que vamos continuar! 😀
Olá, parabéns pelos tutoriais, são muito bons.
Eu venho seguindo seu tutorial de Django e está setado em SQlite, posso depois alterar para PostegreSQL ou tenho que refazer todo o blog?
oi Isaac, pode sim, mas depois vai ter que rodar as migrations novamente.
Oi, Matheus! Fiquei com uma dúvida de como inserir no db usando PostegreSQL depois de configurar em settings Poderia me dar alguma dica?
oi Iago, a ideia é a mesma em qualquer banco, o framework abstrair esta parte, você só muda a conexão com o banco de dados.
Me ajudou muito, obrigado por compartilhar!