Hoje veremos como realizar a configuração do banco de dados PostgreSQL utilizando-se o driver psycopg3 no framework web Django.
📝 Código testado no Django 5.
📝 O framework Django 5 suporta PostgreSQL 12 ou superior.
📝 O framework Django 5 suporta psycopg 3.1.8 ou superior.
Posts relacionados:
- Como criar um if de uma linha em Python
- Como instalar a ferramenta de linha de comando pipX
- Como criar um aplicativo Flutter com Python e o framework Flet
- Como instalar a linguagem de programação Python no macOS
- Como fazer o deploy do Python Sphinx no Github pages
- Como utilizar Python com o banco de dados Microsoft Access
- Como utilizar Python com o banco de dados SQL Server
- Como utilizar o SQLAlchemy com o banco de dados SQL Server
- Como utilizar o Python com MariaDB e MySQL Connector
- Como utilizar o Python com MariaDB e MariaDB Connector
- Como utilizar o SQLAlchemy com MariaDB e MariaDB Connector
- Como utilizar o SQLAlchemy com MariaDB e MySQL Connector
- Como utilizar o MongoEngine com o banco de dados MongoDB
- Como utilizar Python com o banco de dados MongoDB
- Como utilizar Python com o banco de dados Redis
- Como utilizar Python com o banco de dados SQLite3
- Como utilizar o SQLAlchemy com o banco de dados SQLite3
- Como utilizar o SQLAlchemy com o banco de dados PostgreSQL
- Como utilizar Python com o banco de dados PostgreSQL
- Como utilizar Python com o banco de dados MySQL
- Como utilizar o SQLAlchemy com o banco de dados MySQL
- Tratamento de caracteres utf-8 com Python e a flag -Xutf8
- PySide6 e PyQt6 os bindings para o framework gráfico Qt 6
- PySide6 e PyQt6 na criação de interfaces gráficas com QML
- Instalando várias versões da linguagem Python no Windows
- Como instalar a ferramenta de linha de comando pyenv
- Configurando o banco de dados MySQL no framework Django
- Configurando o banco de dados PostgreSQL no framework Django
- Como instalar a linguagem de programação Python no Linux
- How to install the Python language on Linux
psycopg
O
psycopg é um conector para o banco de dados PostgreSQL para Python.
Ele é um pacote que permite que você se conecte a um banco de dados PostgreSQL a partir de um programa Python e execute consultas SQL, insira, atualize e exclua dados, e faça outras operações de banco de dados.
O psycopg implementa a API do banco de dados PostgreSQL em Python, permitindo que os desenvolvedores interajam com um banco de dados PostgreSQL de forma fácil e eficiente em seus programas Python.
Instalação
Para instalar o driver psycopg
:
pip install "psycopg[binary,pool]"
Conexão
Configurando a variável DATABASES
do arquivo settings.py
:
# settings.py
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql',
'NAME': 'database_name',
'USER': 'dbuser',
'PASSWORD': '123456',
'HOST': 'localhost',
'PORT': '5432',
}
}
Onde:
ENGINE
: Driver será usado pelo Django.NAME
: Nome do database que será usado nessa conexão.USER
: Nome do usuário que irá utilizar o banco. Usuário deve ter as permissões necessária para manipular o banco.PASSWORD
: Senha do usuário.HOST
: IP ou nome do computador onde o banco de dados está sendo executado.PORT
: Porta que o banco de dados está utilizando. O padrão é 5432.
🚨 No código acima os valores das variáveis estão sendo passados hardcoded.
Se possível evite fazer isso, de preferência pela utilização de variáveis de ambiente ou arquivos
.env
.
Extra
Docker compose
Configuração do banco que foi utilizada nos testes com o framework web Django (docker-compose.yml
):
# docker-compose.yml
# [Docker](https://docs.docker.com/):
# - `docker-compose up`.
# - `docker-compose down`.
# [podman](https://podman.io/) - [podman-compose](https://github.com/containers/podman-compose):
# - `podman-compose up`.
# - `podman-compose down.
services:
db:
image: postgres:16.2-alpine
container_name: PostgreSQL
restart: on-failure
# Privileged para evitar o erro: '/var/lib/postgresql/data': Permission denied
privileged: true
ports:
- '5432:5432'
volumes:
- ../databases/postgresql:/var/lib/postgresql/data
environment:
POSTGRES_USER: dbuser
POSTGRES_PASSWORD: 123456
POSTGRES_DB: database_name
📝 Arquivo
docker-compose.yml
testado com podman-compose.