Neste tutorial, vamos aprender a utilizar o SQLite3 em conjunto com o PySimpleGUI para criar um projeto e implementar um banco de dados em uma aplicação em Python.
O SQLite3 é uma biblioteca embutida no Python que permite criar e gerenciar bancos de dados de forma simples e eficiente. Já o PySimpleGUI é uma biblioteca que facilita a criação de interfaces gráficas para aplicações em Python.
Para começar, certifique-se de que você tenha o SQLite3 instalado em seu computador. Caso não tenha, você pode instalar utilizando o comando pip install sqlite3
.
Vamos começar criando um novo arquivo Python para o nosso projeto. Abra o seu editor de código favorito e crie um novo arquivo chamado projeto.py
.
Agora, importe as bibliotecas necessárias para o nosso projeto:
import sqlite3
import PySimpleGUI as sg
Em seguida, vamos criar uma classe para gerenciar o nosso banco de dados SQLite3. Dentro da classe, vamos adicionar métodos para conectar ao banco, criar uma tabela e inserir registros na tabela.
class BancoDeDados:
def __init__(self):
self.conexao = sqlite3.connect('banco_de_dados.db')
self.cursor = self.conexao.cursor()
def criar_tabela(self):
self.cursor.execute('CREATE TABLE IF NOT EXISTS clientes (id INTEGER PRIMARY KEY, nome TEXT, email TEXT)')
def inserir_cliente(self, nome, email):
self.cursor.execute('INSERT INTO clientes (nome, email) VALUES (?, ?)', (nome, email))
self.conexao.commit()
Agora, vamos criar uma função para exibir a interface gráfica da nossa aplicação utilizando o PySimpleGUI. A interface terá um campo para o nome do cliente, um campo para o e-mail do cliente e um botão para adicionar o cliente ao banco de dados.
def interface_grafica():
layout = [
[sg.Text('Nome')],
[sg.Input(key='nome')],
[sg.Text('Email')],
[sg.Input(key='email')],
[sg.Button('Adicionar Cliente')]
]
window = sg.Window('Cadastro de Clientes', layout)
while True:
event, values = window.read()
if event == sg.WIN_CLOSED:
break
if event == 'Adicionar Cliente':
nome = values['nome']
email = values['email']
banco_de_dados = BancoDeDados()
banco_de_dados.inserir_cliente(nome, email)
window.close()
if __name__ == '__main__':
banco_de_dados = BancoDeDados()
banco_de_dados.criar_tabela()
interface_grafica()
Por fim, executamos a função criar_tabela()
ao inicializar a aplicação para garantir que a tabela seja criada no banco de dados. Em seguida, exibimos a interface gráfica para o usuário inserir os dados do cliente e os adicionamos ao banco de dados quando o botão for clicado.
Agora que você entende como combinar o PySimpleGUI e o SQLite3 em um projeto, você pode expandir e personalizar esse código para criar suas próprias aplicações com interface gráfica e banco de dados em Python.
Cara muito legal esse seu projeto, estou aprendendo muito. Obrigado
Legal. MAs como recuperar a parte escrita do código do vídeo…
uma duvida… quando digitamos uma dado no input e envia, ele continua na linha. sera que tem como quando enviar o dado apagar a linha para ficar em branco novamente?
Perfeitamente, mesmo! Like e comentado. Obrigado pelas explicações do código.
Olá! Como consulto o banco de dados do sqlite browser?
data base, base de dados ou bando de dados
O Elias está certo quando falou da duplicidade de ID quando vc usa o random. O random não procura os id existentes pra evitar duplicidade. E fica esquisito o 1o registro ser 654 como aconteceu.
Felipe, apenas uma dica. Ao invés de usar uma numeração randomica no ID, use a opção AUTOINCREMENT onde vc cria o campo, para que os registros fiquem com a numeração sequencial ao invés de ficar com números desordenados.
Muito lega cara! Continua com essas aulas de bibliotecas que são muito importantes pra um programador, e continua seguindo a ideia já dada pela biblioteca! Muito top parabéns
Mano eu ja terminei e ja vi completo tds os videos mas ele fica colocando {} no começo e no final de um nome se ele conter espacos como resolvo isso? Uso python3.7
Showw véi parabéns e grato pela partilha.
Só 1 obs. Ao invés de por a id de formar random e evitando futura duplicidade de id, não seria viável por a id da base como autoincrement ?
Sucesso meu brother.
ps. Ainda não terminei de assistir todos os vídeos mas caso não tenha seria a cereja do bolo um campo de busca para a listbox.
Quando você colocou o random.randint para criar um id poderá ocorrer um erro caso o id venha a aparecer 2 vezes? Acho que talvez usar o itertools.count() resolveria