Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # -*- coding: utf8 -*-
- """ Exemplo (CRUD) de utilização do psycopg2
- ======================
- Instalação do conector
- ======================
- Se possível utilize um ambiente virtual (venv, pyenv, virtualenv, etc).
- .. code-block:: bash
- pip install psycopg2
- ========================
- Configurar o PostgreSQL
- ========================
- Caso o banco de dados esteja em outra máquina que não seja o localhost
- (127.0.0.1, etc) é necessária a configuração dos arquivos
- **postgresql.conf** e **pg_hba.conf**.
- Esses arquivos estão no diretório:
- - /etc/postgresql/9.5/main/postgresql.conf
- Neste arquivos vamos mudar o parametro **listen_addresses** para:
- ``listen_addresses = '*'``.
- - /etc/postgresql/9.5/main/pg_hba.conf
- Neste vamos permitir a conexão de qualquer host externo
- e a autenticação será por senha:
- ``host all all 127.0.0.1/32 md5``
- ``host all all 0.0.0.0/0 password``
- **OBS:** lembre-se de alterar o caminho de acordo com a sua
- versão do PostgreSQL.
- ===============
- Comando básicos
- ===============
- - Lista databases - ``\list ou \l``.
- - Conectar ou trocar de database - ``\connect ou \c``.
- - Listar tabelas de uma database - ``\dt``.
- - Listar todos os usuários - ``\du``.
- """
- import psycopg2
- class ConectarDB():
- def __init__(self):
- try:
- self.conexao = psycopg2.connect(
- database='testepy',
- user='python',
- password='123456',
- host='192.168.0.101')
- except Exception as e:
- print('[!] Falha ao conectar no servidor [!]: ', e)
- def criar_tabela(self):
- cursor = self.conexao.cursor()
- try:
- cursor.execute("""CREATE TABLE IF NOT EXISTS usuario (
- id SERIAL PRIMARY KEY NOT NULL,
- nome varchar(50) NOT NULL,
- senha varchar(50) NOT NULL,
- email varchar(50) NOT NULL);
- """)
- except Exception as e:
- print('[!] Falha ao criar tabela [!]: ', e)
- else:
- self.conexao.commit()
- print('[!] Tabela criada com sucesso [!]')
- finally:
- cursor.close()
- # self.conexao.close()
- def criar_usuario(self):
- cursor = self.conexao.cursor()
- try:
- cursor.execute("""INSERT INTO usuario (nome, email, senha)
- VALUES ('Renato', 'renato@teste.com', '123456')""")
- except Exception as e:
- self.conexao.rollback()
- print('[!] Falha ao cadastrar novo usuário [!]: ', e)
- else:
- self.conexao.commit()
- print('[!] Usuário cadastrado com sucesso [!]')
- finally:
- cursor.close()
- # self.conexao.close()
- def consultar_todos(self):
- cursor = self.conexao.cursor()
- try:
- cursor.execute("SELECT * FROM usuario")
- except Exception as e:
- print('[!] Falha ao buscar os dados [!]: ', e)
- else:
- print(cursor.fetchall())
- finally:
- cursor.close()
- # self.conexao.close()
- def consultar_usuario(self):
- cursor = self.conexao.cursor()
- try:
- cursor.execute("""SELECT id, nome FROM usuario
- WHERE id='%s'""" % (3))
- except Exception as e:
- print('[!] Erro ao buscar usuário [!]: ', e)
- else:
- print(cursor.fetchone())
- finally:
- cursor.close()
- # self.conexao.close()
- def atualizar_usuario(self):
- cursor = self.conexao.cursor()
- try:
- cursor.execute("""UPDATE usuario SET nome='%s', email='%s',
- senha='%s' WHERE id='%s'""" %
- ('Renato Cruz', 'renato@teste.com.br', '654321', 3))
- except Exception as e:
- self.conexao.rollback()
- print('[!] Falha ao atualizar os dados [!]: ', e)
- else:
- self.conexao.commit()
- print('[!] Dados atualizados com sucesso [!]')
- finally:
- cursor.close()
- # self.conexao.close()
- def deletar_usuario(self):
- cursor = self.conexao.cursor()
- try:
- cursor.execute("""DELETE FROM usuario WHERE id='%s'""" % (3))
- except Exception as e:
- self.conexao.rollback()
- print('[!] Falha ao remover o usuário [!]: ', e)
- else:
- self.conexao.commit()
- print('[!] Usuário removido com sucesso [!]')
- finally:
- cursor.close()
- # self.conexao.close()
- if __name__ == '__main__':
- conectar = ConectarDB()
- # conectar.criar_tabela()
- # conectar.criar_usuario()
- # conectar.consultar_todos()
- # conectar.consultar_usuario()
- # conectar.atualizar_usuario()
- # conectar.deletar_usuario()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement