#!C:\\Python26\\python.exe #-*- coding: ISO-8859-1 -*- print "Content-type: text/html; ISO-8859-1" import template import colunaLateral import colunaMeio template.cabecalho() template.bodyInicio() colunaMeio.meio() template.bodyFinal()
def main(): while True: template.limpar_tela() template.cabecalho("Cadastro Master Blaster Mega do Detran Barril") template.menu_tabela( "Criar Banco de Dados", "Cadastrar", "Atualizar Cadastro", "Mostrar Cadastro", "Deletar Cadastro", "Sair", ) while True: try: resp = int(input("Selecione uma opção:\n")) if resp not in range(1, 7): print("Você digitou uma opção inválida. Tente novamente!") continue else: break except: print("Você digitou uma opção inválida. Tente novamente!") continue if resp == 1: template.limpar_tela() criar_tabelas() sleep(1) elif resp == 2: while True: template.limpar_tela() cadastrar_no_banco() resp = input("Você gostaria de realizar outro " "cadastro? [S/N]\n").lower().strip()[0] if resp in "sn" and resp != "" and resp != " ": continue else: break elif resp == 3: template.limpar_tela() update() elif resp == 4: template.limpar_tela() apresentar_banco() elif resp == 5: while True: template.limpar_tela() deletar_no_banco() resp = input("Você gostaria de deletar outro " "cadastro? [S/N]\n").lower().strip()[0] if resp in "sn" and resp != "" and resp != " ": continue else: break elif resp == 6: print("\nObrigado por usar nossos serviços!") break else: print("\nOps, algo deu errado. Tente novamente!") sleep(1)
def apresentar_banco(entrada="tudo", att_pessoa=False, att_veiculo=False): """ Essa função é responsável por mostrar os dados escolhidos, o usuário pode escolher mostrar uma pessoa que ainda não está vinculada a um veículo, um veículo que ainda não está vinculado a uma pessoa ou uma pessoa com veículo. """ conn = sqlite3.connect('Cadastro_Geral.db') cursor = conn.cursor() if entrada == "pessoas_sem_veiculo": cursor.execute(""" SELECT id, nome FROM Cadastro_pessoa Where veiculo_id = 0 """) tabela_nomes = cursor.fetchall() for linha in tabela_nomes: print(f"\nID:{linha[0]}\nNome:{linha[1]}\n") conn.close() if entrada == "Veiculos_sem_pessoas": cursor.execute(""" SELECT id, nome, placa FROM Cadastro_veiculo; """) lista_veiculos = cursor.fetchall() cursor.execute(""" SELECT veiculo_id FROM Cadastro_pessoa Where veiculo_id != 0 """) lista_pessoas_com_veiculos = cursor.fetchall() for carro in lista_veiculos: if not carro[0] in lista_pessoas_com_veiculos: print(f"\nID: {carro[0]}\n" f"Veículo: {carro[1]}\n" f"Placa: {carro[2]}\n\n") conn.close() if entrada == "tudo": resp = 0 if att_pessoa == False and att_veiculo == False: template.cabecalho("Tabela de Cadastros") template.texto_menu("[1] Pessoa") template.texto_menu("[2] Veículo") template.texto_menu("[3] Pessoas veículo") # template.texto_menu("[4] Pessoas sem veículo") template.rodape() while True: try: resp = int(input("Selecione uma opção:\n")) if resp not in range(1, 4): print( "Você digitou uma opção inválida. Tente novamente!" ) continue else: break except: print("Você digitou uma opção inválida. Tente novamente!") continue if resp == 1 or att_pessoa == True: while True: todos_ids = [] cursor.execute(""" SELECT id, nome FROM Cadastro_pessoa; """) tabela_nomes = cursor.fetchall() for linha in tabela_nomes: print(f"\nID: {linha[0]}\nNome: {linha[1]}") todos_ids.append(linha[0]) try: while True: resp_id = int( input("\nSelecione o ID para ver o cadastro " "completo.\nAperte ENTER para continuar.\n")) if resp_id not in todos_ids: print("ID não cadastrado! Tente novamente.") continue else: break except: return None else: lista = cursor.execute( """PRAGMA table_info(Cadastro_pessoa)""") opcoes = [] for opcao in lista: opcoes.append(opcao[1].replace("_", " ").title()) opcoes = tuple(opcoes) cursor.execute(f""" SELECT * FROM Cadastro_pessoa WHERE id = {resp_id} """) matriz = [opcoes] matriz.append(cursor.fetchone()) for indice in range(len(opcoes)): primeira_coluna = True for linha in matriz: if primeira_coluna: print(f"{linha[indice]:>17}", end=" " * 3) primeira_coluna = False else: print(f"{linha[indice]:<20}", end=" ") print() input("\nPressione Enter para continuar.\n") if resp == 2 or att_veiculo == True: while True: todos_ids = [] cursor.execute(""" SELECT id, nome, placa FROM Cadastro_veiculo; """) tabela_nomes = cursor.fetchall() for linha in tabela_nomes: print( f"\nID: {linha[0]}\nNome: {linha[1]}\nPlaca: {linha[2]}" ) todos_ids.append(linha[0]) try: while True: resp_id = int( input("\nSelecione o ID para ver o cadastro " "completo.\nAperte ENTER para continuar.\n")) if resp_id not in todos_ids: print("ID não cadastrado! Tente novamente.") continue else: break except: return None else: lista = cursor.execute( """PRAGMA table_info(Cadastro_veiculo)""") opcoes = [] for opcao in lista: opcoes.append(opcao[1].replace("_", " ").title()) opcoes = tuple(opcoes) cursor.execute(f""" SELECT * FROM Cadastro_veiculo WHERE id = {resp_id} """) matriz = [opcoes] matriz.append(cursor.fetchone()) for indice in range(len(opcoes)): primeira_coluna = True for linha in matriz: if primeira_coluna: print(f"{linha[indice]:>17}", end=" " * 3) primeira_coluna = False else: print(f"{linha[indice]:<20}", end=" ") print() input("\nPressione Enter para continuar.\n") if resp == 3: cursor.execute(""" SELECT Cadastro_pessoa.id, Cadastro_pessoa.nome, Cadastro_veiculo.nome, Cadastro_veiculo.placa FROM Cadastro_pessoa INNER JOIN Cadastro_veiculo ON Cadastro_pessoa.veiculo_id = Cadastro_veiculo.id """) for linha in cursor.fetchall(): print(f"\nID: {linha[0]}\nProprietário: {linha[1]}\n" f"Veículo: {linha[2]}\nPlaca: {linha[3]}\n\n") resp = int( input("\nSelecione o ID para ver o cadastro completo." "\nDigite 0 para sair:\n")) if resp == 0: return None else: lista = cursor.execute( """PRAGMA table_info(Cadastro_pessoa)""") opcoes1 = [] for opcao1 in lista: opcoes1.append(opcao1[1]) opcoes1 = tuple(opcoes1) lista2 = cursor.execute( """PRAGMA table_info(Cadastro_veiculo)""") opcoes2 = [] for opcao2 in lista2: opcoes2.append(opcao2[1]) opcoes2 = tuple(opcoes2) cursor.execute(f""" SELECT * FROM Cadastro_pessoa WHERE id = {resp} """) matriz = [opcoes1] matriz.append(cursor.fetchone()) matriz.append(opcoes2) cursor.execute(f""" SELECT * FROM Cadastro_veiculo WHERE id = {resp} """) matriz.append(cursor.fetchone()) print() for indice in range(len(opcoes1)): primeira_coluna = True terceira_coluna = False for linha in matriz: if primeira_coluna: print(f"{linha[indice]:>17}:", end=" " * 2) primeira_coluna = False elif not terceira_coluna and not primeira_coluna: print(f"{linha[indice]:<20}", end=" |") terceira_coluna = True elif terceira_coluna: print(f"{linha[indice]:>17}:", end=" " * 2) terceira_coluna = False print() input("\nPressione Enter para continuar.\n")
def cadastrar_no_banco(): """ Essa função é responsável pelo cadastro no banco de dados, o usuário pode escolher cadastrar uma pessoa ou um veículo. """ template.cabecalho("Cadastro") template.menu_tabela("Pessoa", "Veículo") while True: try: resp = int(input("Selecione uma opção:\n")) if resp not in range(1, 3): print("Você digitou uma opção inválida. Tente novamente!") continue else: break except: print("Você digitou uma opção inválida. Tente novamente!") continue conn = sqlite3.connect("Cadastro_Geral.db") cursor = conn.cursor() if resp == 1: nome = input("Nome:\n") data_nascimento = input("Data de nascimento:\n") cpf = input("CPF:\n") endereco = input("Endereço:\n") salario = float(input("Salário:\n")) profissao = input("Profissão:\n") telefone = input("Telefone:\n") nome_responsavel = input("Nome do Responsável:\n") sexo = input("Sexo:\n") naturalidade = input("Naturalidade:\n") nacionalidade = input("Nacionalidade:\n") pessoa = Pessoa(nome, data_nascimento, cpf, endereco, salario, profissao, telefone, nome_responsavel, sexo, naturalidade, nacionalidade) cadastro_pessoa = (pessoa.nome, pessoa.data_nascimento, pessoa.cpf, pessoa.endereco, pessoa.salario, pessoa.profissao, pessoa.telefone, pessoa.nome_responsavel, pessoa.sexo, pessoa.naturalidade, pessoa.nacionalidade, 0) try: cursor.execute( """ INSERT INTO Cadastro_pessoa(nome, data_nascimento, cpf, endereco, salario, profissao, telefone, nome_responsavel, sexo, naturalidade, nacionalidade, veiculo_id) VALUES(?,?,?,?,?,?,?,?,?,?,?,?) """, cadastro_pessoa) except Exception as ex: conn.rollback() msg = "An exception of type {0} occurred. Arguments:\n{1!r}" message = msg.format(type(ex).__name__, ex.args) print(message) conn.commit() if resp == 2: marca = input("Marca:\n") nome = input("Nome do carro:\n") modelo = input("Modelo:\n") placa = input("Placa:\n") proprietario = input("Proprietário:\n") cor = input("Cor:\n") km_rodado = input("Kilometros rodados:\n") qte_passageiros = input("Quantidade de lugares:\n") motor = input("Motor:\n") combustivel = input("Combustível:\n") meio_locomocao = input("Meio de locomoção:\n") valor = input("Valor:\n") carro = Veiculo(marca, nome, modelo, placa, proprietario, cor, km_rodado, qte_passageiros, motor, combustivel, meio_locomocao, valor) cadastro_veiculo = (carro.marca, carro.nome, carro.modelo, carro.placa, carro.proprietario, carro.cor, carro.km_rodado, carro.qte_passageiros, carro.motor, carro.combustivel, carro.meio_locomocao, carro.valor) try: cursor.execute( """ INSERT INTO Cadastro_veiculo(marca, nome, modelo, placa, proprietario, cor, km_rodado, qte_passageiros, motor, combustivel, meio_locomocao, valor) VALUES(?,?,?,?,?,?,?,?,?,?,?,?) """, cadastro_veiculo) conn.commit() print("Cadastro efetuado com sucesso!") except Exception as ex: conn.rollback() msg = "An exception of type {0} occurred. Arguments:\n{1!r}" message = msg.format(type(ex).__name__, ex.args) print(message) # cursor.execute(""" # SELECT * FROM Cadastro_pessoa INNER JOIN Cadastro_veiculo ON Cadastro_pessoa.veiculo_id = Cadastro_veiculo.id # """) # print(cursor.fetchall()) conn.close()
def deletar_no_banco(): """ Essa função é responsável por deletar uma pessoa ou veículo no banco de dados. """ template.cabecalho("Deletar Cadastro") template.menu_tabela("Pessoa", "Veículo") while True: try: resp = int(input("Selecione uma opção:\n")) if resp not in range(1, 3): print("Você digitou uma opção inválida. Tente novamente!") continue else: break except: print("Você digitou uma opção inválida. Tente novamente!") continue conn = sqlite3.connect('Cadastro_Geral.db') cursor = conn.cursor() if resp == 1: apresentar_banco("tudo", att_pessoa=True) cursor.execute(""" SELECT id FROM Cadastro_Pessoa; """) todos_ids = cursor.fetchall() todos_ids = [x for tupla in todos_ids for x in tupla] while True: try: id_cliente = int( input("Qual id de pessoa você gostaria de deletar?")) if id_cliente not in todos_ids: print("ID não cadastrado! Tente novamente.") continue else: break except: print("Você digitou algo errado! Tente novamente.") continue try: # excluindo um registro da tabela cursor.execute( """ DELETE FROM Cadastro_pessoa WHERE id = ? """, (id_cliente, )) conn.commit() print('Registro excluido com sucesso.') except Exception as ex: conn.rollback() msg = "An exception of type {0} occurred. Arguments:\n{1!r}" message = msg.format(type(ex).__name__, ex.args) print(message) if resp == 2: apresentar_banco("tudo", att_veiculo=True) cursor.execute(""" SELECT id FROM Cadastro_Veiculo; """) todos_ids = cursor.fetchall() todos_ids = [x for tupla in todos_ids for x in tupla] while True: try: id_cliente = int( input("Qual id de pessoa você gostaria de deletar?")) if id_cliente not in todos_ids: print("ID não cadastrado! Tente novamente.") continue else: break except: print("Você digitou algo errado! Tente novamente.") continue try: # excluindo um registro da tabela cursor.execute( """ DELETE FROM Cadastro_veiculo WHERE id = ? """, (id_cliente, )) conn.commit() print('Registros excluidos com sucesso.') except Exception as ex: conn.rollback() msg = "An exception of type {0} occurred. Arguments:\n{1!r}" message = msg.format(type(ex).__name__, ex.args) print(message) conn.close()