You are on page 1of 6

Home (/index.php) / Dicas (/dicas/index.php) / Linux (/dicas/categoriaIndex.php?

codigo 1)
/ Introdução (/dicas/verSubCategoria.php?codigo=12) / Criando classe de conexão - Python + Postgresql

Criando classe de conexão - Python + Postgresql


Publicado por Fred Paranhos (/~metalpunkpointer) em 17/09/2010
(/~metalpunkpointer)
0 0 [ Hits: 13.941 ]

 Denuncie (/denuncie/index.php)  Favoritos (/addBookmark.php?tipo=dica&codigo=15245)  Indicar (/formIndicar.php?


tipo=dica&codigo=15245)  Impressora (/dicas/impressora.php?codigo=15245)

CRIANDO CLASSE DE CONEXÃO - PYTHON + POSTGRESQL

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:


http://initd.org/pub/software/psycopg/ (http://initd.org/pub/software/psycopg/)

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!


Outras dicas deste autor

Nenhuma dica encontrada.

Leitura recomendada

 Instalando Unreal Tournament GOTY nativamente no GNU/Linux (/dica/Instalando-Unreal-Tournament-


GOTY-nativamente-no-GNU-Linux)

 Logical Volume Manager - LVM (GNU/Linux) (/dica/Logical-Volume-Manager-LVM-GNULinux)

 Instalando Pacotes SNAP no Gentoo (/dica/Instalando-Pacotes-SNAP-no-Gentoo)

 Instalando Point Linux (/dica/Instalando-Point-Linux)

 Curso de Pentest Kali Linux (/dica/Curso-de-Pentest-Kali-Linux)

Comentários

[1] Comentário enviado por sebuba (/~sebuba) em 17/09/2010 - 10:02h

Muito bom !

[]'s

0 0

CONTRIBUIR COM COMENTÁRIO


Enviar

(/)

A maior comunidade GNU/Linux da América Latina! Artigos, dicas, tutoriais, fórum, scripts e muito mais. Ideal para quem busca
auto-ajuda.

FAQ - Perguntas frequentes (/faq.php)

Estatísticas do site (/estatisticas.php)

Equipe de moderadores (/equipe/)

Membros da comunidade (/membros/)

Anuncie (/anuncie/)

Contato (/falecom/)

Política de privacidade (/privacidade/)

Quem somos (/quemsomos/)

Termos de uso (/termos-de-uso/)



Site hospedado por:

(/verBanner.php?codigo=247)

Visite também: Viva o Android (https://www.vivaoandroid.com.br) · BR-Linux.org (/verBanner.php?codigo=134) · Dicas-L (/verBanner.php?


codigo=135) · Diolinux (/verBanner.php?codigo=506) · SoftwareLivre.org (/verBanner.php?codigo=133) · UnderLinux (/verBanner.php?codigo=131)
· Blog do Edivaldo (/verBanner.php?codigo=565) · Sempre Update (/verBanner.php?codigo=610)

You might also like