PySimpleGUI + SQLite3 – #04 – SQLite3 project and implementation

Posted by


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.

0 0 votes
Article Rating

Leave a Reply

12 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
@davichiqueti
2 hours ago

Cara muito legal esse seu projeto, estou aprendendo muito. Obrigado

@Biotub
2 hours ago

Legal. MAs como recuperar a parte escrita do código do vídeo…

@mklapico7332
2 hours ago

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?

@betobyte
2 hours ago

Perfeitamente, mesmo! Like e comentado. Obrigado pelas explicações do código.

@nilsonbarros2726
2 hours ago

Olá! Como consulto o banco de dados do sqlite browser?

@paulo.galvao
2 hours ago

data base, base de dados ou bando de dados

@paulorodrigues9868
2 hours ago

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.

@paulorodrigues9868
2 hours ago

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.

@ogaucho2003
2 hours ago

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

@kbrunot13
2 hours ago

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

@beninfo
2 hours ago

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.

@MarcosSilva-xy2ph
2 hours ago

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

12
0
Would love your thoughts, please comment.x
()
x