Advertisement
Guest User

Untitled

a guest
May 30th, 2017
577
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.75 KB | None | 0 0
  1. # -*- coding: utf8 -*-
  2.  
  3. """ Exemplo (CRUD) de utilização do psycopg2
  4.  
  5. ======================
  6. Instalação do conector
  7. ======================
  8.  
  9. Se possível utilize um ambiente virtual (venv, pyenv, virtualenv, etc).
  10.  
  11. .. code-block:: bash
  12.  
  13. pip install psycopg2
  14.  
  15. ========================
  16. Configurar o PostgreSQL
  17. ========================
  18.  
  19. Caso o banco de dados esteja em outra máquina que não seja o localhost
  20. (127.0.0.1, etc) é necessária a configuração dos arquivos
  21. **postgresql.conf** e **pg_hba.conf**.
  22.  
  23. Esses arquivos estão no diretório:
  24.  
  25. - /etc/postgresql/9.5/main/postgresql.conf
  26.  
  27. Neste arquivos vamos mudar o parametro **listen_addresses** para:
  28.  
  29. ``listen_addresses = '*'``.
  30.  
  31. - /etc/postgresql/9.5/main/pg_hba.conf
  32.  
  33. Neste vamos permitir a conexão de qualquer host externo
  34. e a autenticação será por senha:
  35.  
  36. ``host all all 127.0.0.1/32 md5``
  37. ``host all all 0.0.0.0/0 password``
  38.  
  39. **OBS:** lembre-se de alterar o caminho de acordo com a sua
  40. versão do PostgreSQL.
  41.  
  42. ===============
  43. Comando básicos
  44. ===============
  45.  
  46. - Lista databases - ``\list ou \l``.
  47. - Conectar ou trocar de database - ``\connect ou \c``.
  48. - Listar tabelas de uma database - ``\dt``.
  49. - Listar todos os usuários - ``\du``.
  50. """
  51.  
  52. import psycopg2
  53.  
  54.  
  55. class ConectarDB():
  56. def __init__(self):
  57. try:
  58. self.conexao = psycopg2.connect(
  59. database='testepy',
  60. user='python',
  61. password='123456',
  62. host='192.168.0.101')
  63. except Exception as e:
  64. print('[!] Falha ao conectar no servidor [!]: ', e)
  65.  
  66. def criar_tabela(self):
  67. cursor = self.conexao.cursor()
  68. try:
  69. cursor.execute("""CREATE TABLE IF NOT EXISTS usuario (
  70. id SERIAL PRIMARY KEY NOT NULL,
  71. nome varchar(50) NOT NULL,
  72. senha varchar(50) NOT NULL,
  73. email varchar(50) NOT NULL);
  74. """)
  75.  
  76. except Exception as e:
  77. print('[!] Falha ao criar tabela [!]: ', e)
  78. else:
  79. self.conexao.commit()
  80. print('[!] Tabela criada com sucesso [!]')
  81. finally:
  82. cursor.close()
  83. # self.conexao.close()
  84.  
  85. def criar_usuario(self):
  86. cursor = self.conexao.cursor()
  87. try:
  88. cursor.execute("""INSERT INTO usuario (nome, email, senha)
  89. VALUES ('Renato', 'renato@teste.com', '123456')""")
  90. except Exception as e:
  91. self.conexao.rollback()
  92. print('[!] Falha ao cadastrar novo usuário [!]: ', e)
  93. else:
  94. self.conexao.commit()
  95. print('[!] Usuário cadastrado com sucesso [!]')
  96. finally:
  97. cursor.close()
  98. # self.conexao.close()
  99.  
  100. def consultar_todos(self):
  101. cursor = self.conexao.cursor()
  102. try:
  103. cursor.execute("SELECT * FROM usuario")
  104. except Exception as e:
  105. print('[!] Falha ao buscar os dados [!]: ', e)
  106. else:
  107. print(cursor.fetchall())
  108. finally:
  109. cursor.close()
  110. # self.conexao.close()
  111.  
  112. def consultar_usuario(self):
  113. cursor = self.conexao.cursor()
  114. try:
  115. cursor.execute("""SELECT id, nome FROM usuario
  116. WHERE id='%s'""" % (3))
  117. except Exception as e:
  118. print('[!] Erro ao buscar usuário [!]: ', e)
  119. else:
  120. print(cursor.fetchone())
  121. finally:
  122. cursor.close()
  123. # self.conexao.close()
  124.  
  125. def atualizar_usuario(self):
  126. cursor = self.conexao.cursor()
  127. try:
  128. cursor.execute("""UPDATE usuario SET nome='%s', email='%s',
  129. senha='%s' WHERE id='%s'""" %
  130. ('Renato Cruz', 'renato@teste.com.br', '654321', 3))
  131. except Exception as e:
  132. self.conexao.rollback()
  133. print('[!] Falha ao atualizar os dados [!]: ', e)
  134. else:
  135. self.conexao.commit()
  136. print('[!] Dados atualizados com sucesso [!]')
  137. finally:
  138. cursor.close()
  139. # self.conexao.close()
  140.  
  141. def deletar_usuario(self):
  142. cursor = self.conexao.cursor()
  143. try:
  144. cursor.execute("""DELETE FROM usuario WHERE id='%s'""" % (3))
  145. except Exception as e:
  146. self.conexao.rollback()
  147. print('[!] Falha ao remover o usuário [!]: ', e)
  148. else:
  149. self.conexao.commit()
  150. print('[!] Usuário removido com sucesso [!]')
  151. finally:
  152. cursor.close()
  153. # self.conexao.close()
  154.  
  155.  
  156. if __name__ == '__main__':
  157. conectar = ConectarDB()
  158. # conectar.criar_tabela()
  159. # conectar.criar_usuario()
  160. # conectar.consultar_todos()
  161. # conectar.consultar_usuario()
  162. # conectar.atualizar_usuario()
  163. # conectar.deletar_usuario()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement