You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
class BancoDeDados:
'''Classe que representa o bando de dados (database) da aplicação'''
def __init__(self, nome='banco.db'):
self.nome, self.conexao = nome, None
def conecta(self):
'''Conecta passando o nome do arquivo'''
self.conexao = sqlite3.connect(self.nome)
def desconecta(self):
'''Desconecta do banco'''
try:
self.conexao.close()
except AttributeError:
pass
def criar_tabelas(self):
'''Cria as tabelas do banco'''
try:
cursor = self.conexao.cursor() #permite navegar e manipular os registros do banco de dados
cursor.execute('''
CREATE TABLE IF NOT EXISTS clientes(
id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
nome TEXT NOT NULL,
cpf VARCHAR(11) UNIQUE NOT NULL,
email TEXT NOT NULL
);
''')
except AttributeError:
print('Faça a conexeção do banco de dados antes de critar as tabelas')
def inserir_cliente(self, nome, cpf, email):
'''Insere cliente no banco'''
try:
cursor = self.conexao.cursor()
try:
cursor.execute('''INSERT INTO clientes (nome, cpf, email) VALUES(?, ?, ?)
''', (nome, cpf, email))
except sqlite3.IntegrityError:
print(f'O CPF {cpf} já existe')
self.conexao.commit() #commit -> comando que salva as informações na tabela do BD
except AttributeError:
print('Faça a conexeção do banco antes de inserir')
def buscar_cliente(self, cpf):
'''Busca um cliente pelo CPF'''
try:
cursor = self.conexao.cursor()
#obtém todos os dados
cursor.execute('''SELECT * FROM clientes;''')
for linha in cursor.fetchall(): #fetchall -> retorna o resultado do select (uma lista). Na linha[0]
if linha[2] == cpf: #vai estar o id, linha[1] o nome do cliente.
print(f'Cliente {linha[1]} foi encontrado em nosso Banco de Dados!')
break
except AttributeError:
print('Faça a conexeção do banco antes de buscar o cliente')
def remover_cliente(self, cpf):
'''remove cliente pelo CPF'''
try:
cursor = self.conexao.cursor()
cursor.execute('''SELECT * FROM clientes;''')
for linha in cursor.fetchall():
if linha[2] == cpf:
cursor.execute('''DELETE FROM clientes where (cpf)''')
print('Clinte removido com sucesso!!')
else:
print('cliente não encontrado')
self.conexao.commit()
except AttributeError:
print('Faça a conexeção do banco antes de buscar o cliente')
def buscar_email(self, email):
'''Buscar cliente pelo e-mail'''
try:
cursor = self.conexao.cursor()
# Obtém todos os dados.
cursor.execute("""SELECT * FROM clientes;""")
for linha in cursor.fetchall():
if linha[3] == email:
return True
return False
except AttributeError:
print('Faça a conexão do banco antes de buscar clientes.')
The text was updated successfully, but these errors were encountered:
import sqlite3
class BancoDeDados:
'''Classe que representa o bando de dados (database) da aplicação'''
The text was updated successfully, but these errors were encountered: