Nesse tutorial criaremos módulos Python para o acesso a uma base de dados PostgreSQL usando o driver psycopg2. Pode ser aproveitado o módulo de conexão e a classe de modelo para ser implementada em projeto orientado a objetos. Espero que gostem!
Primeiramente baixem os fontes ou binários do psycopg2 em:
Agora vai o código do módulo de conexão:
#!/usr/bin/python
# Aqui está a classe que será usada
# como módulo de conexão.
__author__="metalpunkpointer"
__date__ ="$11/08/2010 15:12:27$"
"""
Envie seu comentários, sugestões e/ou críticas
"""
#driver de conexão com pgsql
import psycopg2
class Connect:
#atributo global para ser
#usado no modelo
global cur;
#método construtor
def __init__(self):
#conexão com banco de dados
try:
conn = psycopg2.connect("\
dbname='teste'\
user='postgres'\
host='127.0.1.1'\
password='senh@'\
");
self.cur = conn.cursor;
except:
print "Erro ao se conectar a base de dados!";
#método destrutor
def __del__(self):
print "Conexão finalizada!";
del self;
Criando modelos
Como foi citado no tópico anterior, segue um exemplo da camada de modelo...
#!/usr/bin/python
# Essa é a classe da camada de modelo
# Onde ficam as queries.
__author__="metalpunkpointer"
__date__ ="$31/08/2010 11:50:27$"
"""
Envie seu comentários, sugestões e/ou críticas
"""
#importa o módulo de conexão
from conexao import Connect;
class ModeloTeste:
#método construtor
def __init__(self):
print;
#query para teste
def query(self):
#instância da classe de conexão
conn = Connect();
#usa o atributo de cursor da classe
#de conexão para fazer a query
qry = conn.cur();
qry.execute("SELECT * FROM pessoas");
return qry.fetchall();
#método destrutor
def __del__(self):
del self;
Usando as classes
Bem, como o código é bem simplório, não criei a camada de controle... sendo que esse seguinte módulo se encarrega de apresentação e do controle, usado apenas para as instâncias das classes antes criadas. Vamos testar como ficou?
#!/usr/bin/python
# Essa é a classe que irá testar o acesso
# ao banco de dados postgresql
__author__="metalpunkpointer";
__date__ ="$31/08/2010 11:48:24$";
"""
Envie seu comentários, sugestões e/ou críticas
"""
if __name__ == "__main__":
print "Olá, esse sera um teste de conexão!";
#importa a classe do modelo
from modeloteste import ModeloTeste;
print "\niniciando teste...\n";
#instância da classe do modelo
#e executa a query
teste = ModeloTeste();
rows = teste.query();
#impressão dos result sets da query
import pprint;
print "\n -- Lista de pessoas -- \n";
pprint.pprint(rows);
Bem, é muito simples se trabalhar com Python e Postgres... experimentem essa sensação e comentem. Até o próximo tutorial!