Na aula de hoje vamos ter uma ferramenta de cadastro de clientes no Python utilizando uma base de dados e exportação para Excel!
Caso prefira esse conteúdo no formato de vídeo-aula, assista ao vídeo abaixo ou acesse o nosso canal do YouTube!
Para receber por e-mail o(s) arquivo(s) utilizados na aula, preencha:
Hoje nós vamos construir uma ferramenta de cadastro de clientes, diferente da ferramenta de cadastro que já fizemos aqui no blog.
A primeira diferença é que nós vamos fazer um cadastro de clientes, outro ponto é que vãos utilizar uma interface gráfica, banco de dados SQlite e exportação para Excel com pandas.
Para iniciar é bom falar sobre as bibliotecas que nós vamos utilizar, que são: tkinter, qslite3 e pandas.
Esse aqui é o passo a passo que nós vamos utilizar para a construção desse projeto. Então a ideia é seguir esses passos para a construção do cadastro de clientes com um banco de dados.
Esse projeto vai ser um pouco diferente do que fizemos anteriormente, pois vamos criar um cadastro de clientes e vamos utilizar um banco de dados para armazenar essas informações.
# #Criando o Banco de Dados:
#
# conexao = sqlite3.connect('clientes.db')
#
# # Criando o cursor:
# c = conexao.cursor()
#
# # Criando a tabela:
#
# # c.execute("""CREATE TABLE clientes (
# # nome text,
# # sobrenome text,
# # email text,
# # telefone text
# # )""")
#
# #Commit as mudanças:
# conexao.commit()
#
# #Fechar o banco de dados:
# conexao.close()
Esse código é para a criação do nosso banco de dados, e você só vai precisar rodar ele uma vez, pois depois que criar esse banco não precisa criar um toda vez que for rodar o código.
Assim que rodar essa primeira parte do código você vai notar que um arquivo foi criado dentro de onde tem o seu código.
Essa é o banco de dados. Você pode visualizar essas informações pelo Python, mas uma sugestão para estudo é o DB Browser.
Com essa ferramenta você vai conseguir ver o banco de dados e até fazer edições de forma manual. Então é uma ferramenta muito útil que pode te ajudar bastante.
Quando abrir o banco de dados você vai notar que ele foi criado com todas as colunas que colocamos, mas está vazio, pois ainda não colocamos nenhuma informação dentro dele.
Depois de utilizar esse código você vai poder comentar ele, pois não vai querer criar um banco de dados toda vez que rodar o código, então essa parte só será executada uma única vez.
#Criando Janela:
janela = tk.Tk()
janela.title('Cadastro de Clientes')
janela. geometry("330x350")
def cadastrar_cliente():
conexao = sqlite3.connect('clientes.db')
c = conexao.cursor()
#Inserir dados na tabela:
c.execute("INSERT INTO clientes VALUES (:nome,:sobrenome,:email,:telefone)",
{
'nome': entry_nome.get(),
'sobrenome': entry_sobrenome.get(),
'email': entry_email.get(),
'telefone': entry_telefone.get()
})
# Commit as mudanças:
conexao.commit()
# Fechar o banco de dados:
conexao.close()
# #Apaga os valores das caixas de entrada
entry_nome.delete(0,"end")
entry_sobrenome.delete(0,"end")
entry_email.delete(0,"end")
entry_telefone.delete(0,"end")
def exporta_clientes():
conexao = sqlite3.connect('clientes.db')
c = conexao.cursor()
# Inserir dados na tabela:
c.execute("SELECT *, oid FROM clientes")
clientes_cadastrados = c.fetchall()
# print(clientes_cadastrados)
clientes_cadastrados=pd.DataFrame(clientes_cadastrados,columns=['nome','sobrenome','email','telefone','Id_banco'])
clientes_cadastrados.to_excel('clientes.xlsx')
# Commit as mudanças:
conexao.commit()
# Fechar o banco de dados:
conexao.close()
#Rótulos Entradas:
label_nome = tk.Label(janela, text='Nome')
label_nome.grid(row=0,column=0, padx=10, pady=10)
label_sobrenome = tk.Label(janela, text='Sobrenome')
label_sobrenome.grid(row=1, column=0, padx=10, pady=10)
label_email = tk.Label(janela, text='E-mail')
label_email.grid(row=2, column=0 , padx=10, pady=10)
label_telefone = tk.Label(janela, text='Telefone')
label_telefone.grid(row=3, column=0, padx=10, pady=10)
#Caixas Entradas:
entry_nome = tk.Entry(janela , width =35)
entry_nome.grid(row=0,column=1, padx=10, pady=10)
entry_sobrenome = tk.Entry(janela, width =35)
entry_sobrenome.grid(row=1, column=1, padx=10, pady=10)
entry_email = tk.Entry(janela, width =35)
entry_email.grid(row=2, column=1 , padx=10, pady=10)
entry_telefone = tk.Entry(janela, width =35)
entry_telefone.grid(row=3, column=1, padx=10, pady=10)
# Botão de Cadastrar
botao_cadastrar = tk.Button(text='Cadastrar Cliente', command=cadastrar_cliente)
botao_cadastrar.grid(row=4, column=0,columnspan=2, padx=10, pady=10 , ipadx = 80)
# Botão de Exportar
botao_exportar = tk.Button(text='Exportar para Excel', command=exporta_clientes)
botao_exportar.grid(row=5, column=0,columnspan=2, padx=10, pady=10 , ipadx = 80)
janela.mainloop()
Aqui temos o restante do código, onde temos a criação da janela utilizando o tkinter e lá embaixo onde temos os rótulos de entrada é que temos as informações que vão aparecer dentro da nossa ferramenta.
Essa parte nós já abordamos na aula onde criamos a Ferramenta de Cadastro no Python, mas como os nomes são bem intuitivos e o código está comentado fica mais fácil entender qual a finalidade de cada código.
A nossa primeira função que é cadastrar_cliente vai servir para fazer a conexão com o banco de dados já criamos, vai inserir os dados preenchidos na tabela (essa é a nossa integração do Python com banco de dados) e por fim vamos atualizar o banco de dados.
Para facilitar ainda vamos utilizar alguns códigos para apagar as informações que foram inseridas pelo usuário, assim fica mais fácil de cadastrar o próximo cliente sem ter o trabalho de apagar manualmente.
A nossa segunda função é exporta_clientes, que vai ser responsável para fazer a integração do Python com Excel.
Vamos novamente fazer a conexão com o banco de dados para poder pegar os clientes que temos cadastrados e registrar essas informações com a biblioteca pandas.
OBS: O pandas no Python é uma biblioteca para análise de dados muito utilizada, caso queira aprender mais sobre o pandas basta clicar aqui que temos uma publicação sobre o assunto.
Aqui já temos a ferramenta de cadastro de cliente criada e já estamos cadastrando o segundo cliente.
Lembrando que ao clicar em cadastrar cliente nós estamos registrando esses dados dentro do nosso banco de dados.
Só vamos exportar essas informações para o Excel quando o usuário clicar em Exportar Base de Clientes.
Aqui já temos os dados que foram exportados do banco de dados com as informações corretas + o valor do id do banco.
Nessa aula eu te mostrei uma ferramenta de cadastro de clientes no Python, mas dessa vez utilizando um banco de dados para registrar essas informações.
E para complementar também fizemos a integração do Python com Excel para poder exportar as informações do banco de dados para o Excel.
Agora, você possui diversas informações para criar ferramentas de cadastro e utilizar um banco de dados para registrar e gerenciar esses dados.
Se você quer continuar evoluindo no Python e aprender ainda mais, recomendo o curso de Python da Hashtag, que pode te ajudar a aprofundar seus conhecimentos e desenvolver novas habilidades!
Para acessar outras publicações de Python, clique aqui!
Quer aprender mais sobre Python com um minicurso gratuito?
Expert em conteúdos da Hashtag Treinamentos. Auxilia na criação de conteúdos de variados temas voltados para aqueles que acompanham nossos canais.