Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

SQLite3RemoveBuscaPorEmail_Fabio_Pancotti #13

Open
pancotti opened this issue Jun 2, 2019 · 0 comments
Open

SQLite3RemoveBuscaPorEmail_Fabio_Pancotti #13

pancotti opened this issue Jun 2, 2019 · 0 comments

Comments

@pancotti
Copy link

pancotti commented Jun 2, 2019

import sqlite3

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.')
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant