Skip to content

User Interface Project created with Tkinter for SQL database manipulation.

License

Notifications You must be signed in to change notification settings

Hugo-Hattori/Tkinter_SQL

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Tkinter SQL

Packages used:

  • tkinter
  • tkinter.messagebox
  • pyodbc

Project Concept

This is an integration project that creates a user-friendly User Interface with Tkinter enabling SQL database manipulation. In this project's scenario we're creating an Inventory Control System capable of adding new inventory items, searching for existing items, updating an item's quantity and deleting an existing item.

Tkinter + Proxlight Designer

The following interface was created using Proxlight Designer and Figma. Proxlight imports Figma's project and transform it into a Python Script using Tkinter.

img.png

Python + SQL

This project utilizes pyodbc package, allowing python scripts to execute SQL commands on the database. In this case we're creating the CRUD Operations (Create, Read, Update and Delete).


Create

def btn_clicked3(): #adicionar insumo
nome_insumo = entry1.get()
data_validade = entry2.get()
lote = entry3.get()
quantidade = entry4.get()
# adicionar no banco de dados aquele insumo
comando = f"""INSERT INTO Insumos (nome_insumo, data_validade, lote, quantidade)
VALUES
('{nome_insumo}', '{data_validade}', '{lote}', '{quantidade}')"""
cursor.execute(comando)
cursor.commit()
tkinter.messagebox.showinfo(title='Aviso adicionar produto', message='Produto adicionado com sucesso!')
entry1.delete("0","end")
entry2.delete("0","end")
entry3.delete("0","end")
entry4.delete("0","end")
print("Adicionar Insumo")


Read

def btn_clicked0(): #procurar insumo
nome_insumo = entry1.get()
# buscar essa informação do insumo no banco de dados
comando = f"""SELECT * from Insumos
WHERE nome_insumo = '{nome_insumo}';
"""
cursor.execute(comando)
entry0.delete("1.0","end")
for linha in cursor.fetchall():
texto = f"Item: {linha.nome_insumo}\nQuantidade: {linha.quantidade}\nLote:{linha.lote}\nValidade:{linha.data_validade}"
entry0.insert("1.0", texto)
entry1.delete("0", "end")
print("Procurar Insumo")


Update

def btn_clicked2(): #registrar uso insumo (consumir um insumo)
nome_insumo = entry1.get()
qtde_usada = entry4.get()
# buscar o insumo pelo nome_insumo no banco de dados
# diminuir a quantidade do insumo de acordo com a quantidade consumida
comando = f"""UPDATE Insumos
SET quantidade = quantidade - {qtde_usada}
WHERE nome_insumo = '{nome_insumo}';
"""
cursor.execute(comando)
cursor.commit()
# exibir uma mensagem dizendo quantas unidades ainda restam
tkinter.messagebox.showinfo(title='Aviso uso insumo', message=f'{qtde_usada} unidades de {nome_insumo} foram usadas!')
print("Usar Insumo")


Delete

def btn_clicked1(): #deletar insumo
nome_insumo = entry1.get()
# buscar e deletar a informação do insumo no banco de dados
comando = f"""DELETE from Insumos
WHERE nome_insumo = '{nome_insumo}';
"""
cursor.execute(comando)
cursor.commit()
# exibir uma mensagem que deletou o insumo no entry 0
tkinter.messagebox.showinfo(title='Aviso uso excluído', message=f'{nome_insumo} foi excluído do Banco de Dados!')
entry1.delete("0", "end")
print("Deletar Insumo")