Olá pessoal!
Mais uma vez vamos falar de acesso a bancos de dados com Python!
Desta vez, usaremos o PostgreSQL!
Estão prontos?
Precisamos antes de qualquer coisa instalar o postgres, e configurar um banco de dados e um usuário para podermos fazer o acesso.
Esta nesta parte não guiarei vocês porque a instalação e configuração do PostgreSQL tem suas especificidades para cada sistema e não seria legal deixar esta postagem muito grande para explicar tudo. Tenho certeza que encontrarão bons tutoriais online para aprender esta etapa.
Em seguida vamos instalar a API de acesso ao Postgres. Existem várias opções, mas aqui usaremos a Psycopg2, pois esta implementa várias funções especiais para o Postgres além de implementar totalmente a API 2.0 de acesso a bancos de dados do Python.
Após instalar o Psycopg2 (via repositório da sua distribuição Linux ou via instaladores que podem ser encontrados aqui) abra um shell python e vamos começar a acessar e usar o PostgreSQL
Importe o módulo do psycopg2
>>> import psycopg2
Crie uma conexão com o banco. Aqui usaremos o usuário padrão de gerenciamento do PostgreSQL e uma senha q criei somente para testes.
Você precisa ter criado previamente um banco de dados. Aqui, chamamos de testepy.
>>> con = psycopg2.connect(host='localhost', user='postgres', password='postgres',dbname='testepy')
Agora, guarde numa variável o cursor do banco
>>> c = con.cursor()
Agora é hora de criarmos uma tabela no nosso banco
>>> c.execute('CREATE TABLE teste (id int, nome text)')
Insira alguns dados no banco
>>> for i in xrange(5):
... c.execute("INSERT INTO teste VALUES (%d, 'teste%d')"%(i, i))
Persista as alterações.
>>> con.commit()
Agora vamos executar queries para testar o acesso aos dados!
>>> c.execute('SELECT * FROM teste')
>>> c.fetchall()
>>> c.execute('SELECT * FROM teste WHERE id=%d'%3)
>>> c.fetchone()
>>> c.execute('SELECT * FROM teste WHERE nome=%s',('teste%d'%2,))
>>> c.fetchone()
>>> c.execute('SELECT nome FROM teste WHERE id=%s',[1])
>>> c.fetchone()
>>> itens = [(10, 'banana'),
... (11, 'coco'),
... (12, 'carambola')
... ]
>>> c.executemany('insert into teste values (%s, %s)', itens)
>>> con.commit()
>>> c.execute('select * from teste order by nome')
>>> c.fetchall()
Se esiverem seguindo os artigos sobre acesso a bancos de dados, perceberão que os comandos que usamos aqui, mais uma vez foram exatamente os mesmos usados para o módulo se MySQL e de SQLite3.
Isto porque todos os módulos usados nesta série implementam a Python DB API Interface 2.0 Assim, com pouquíssimas alterações no código podemos executar o mesmo programa para diversos sistemas de bancos de dados.
Só para lembrar, aqui usamos o Python 2.7 para criar o tutorial, devido à grande quantidade que temos de APIs para esta versão.
No próximo artigo vamos falar sobre o SQL Server da Microsoft.
Espero que tenham gostado deste artigo!
Até a próxima, e divirtam-se!

Nenhum comentário:
Postar um comentário