Fala galera do mundo dos dados! Todo mundo bem? Espero que sim! Então seguimos a série Criar CRUD com Streamlit e o PostgreSQL. Portanto, chegou a hora de inserir dados no banco.
Este post faz parte de uma série para construção de uma aplicação Web integrada com um banco de dados executando todas as operações do CRUD, confere as divisões do conteúdo:
- Criar CRUD com Streamlit e o PostgreSQL
- Inserir Dados com Streamlit e o PostgreSQL – Você está aqui, segue a missão!
- Consultar Dados com Streamlit e o PostgreSQL
- Deletar Dados com Streamlit e o PostgreSQL
- Alterar Dados com Streamlit e o PostgreSQL
Então, partiu CRUD ao Cubo!
Inserindo Dados ao Cubo
Todo o processo será iniciado no arquivo main.py, que vai exibir um menu lateral onde o usuário tem a opção de navegar pelas páginas através do menu. Ao escolher a opção de Inserir a aplicação vai chamar a função insert do módulo page.
# carregando as bibliotecas import streamlit as st # carregando as funções em outros arquivos .py import page.insert as insert # criando a barra lateral do menu st.sidebar.title('Menu') page = st.sidebar.selectbox('Cliente',['Inserir','Consultar','Alterar','Deletar']) # carregando as páginas de acordo com a seleção do menu if page == 'Inserir': insert.inserir()
Essa é a imagem da aplicação funcionando quando o usuário seleciona o menu Inserir.
A construção da página web é em Python de forma dinâmica com o framework Streamlit.
Página Web com Streamlit
Na página web do Streamlit teremos um título, e um form com três campos para input de dados e um botão para enviar os dados informados. O título, utilizaremos a função title do Streamlit. Já o form temos uma função no Streamlit de nome form. Para os inputs, serão as funções text_input (tipo de dados de texto), number_input (tipo de dados de números) e selectbox (tipo de dados de seleção em um box). Fechando com o botão, utilizando a função form_submit_button, que vai enviar os dados digitados para algum lugar. Tudo isso vamos encapsular dentro de uma função, que daremos o nome de inserir, e está escrito em Python no bloco de código abaixo.
# carregando as bibliotecas import streamlit as st # carregando as funções em outros arquivos .py import controller.cliente as cliente def inserir(): st.title('Inserir Dados') profissoes = ['Analista de Dados', 'Engenheiro de Dados', 'Cientista de Dados'] with st.form(key='insert'): input_name = st.text_input(label='Insira o nome') input_age = st.number_input(label='Insira a idade', format='%d', step=1) input_job = st.selectbox(label='Insira a profissão', options=profissoes) button_submit = st.form_submit_button('Enviar') if button_submit: cliente.incluir(input_name, input_age, input_job) st.success('Cliente incluido com sucesso!!!')
Quando o usuário clicar no botão Enviar, a aplicação vai chamar uma função no controller cliente de nome incluir e aí começa a comunicação do Streamlit com o PostgreSQL.
Streamlit e o PostgreSQL
No controller, a função incluir vai receber três parâmetros nome, idade, profissão, que serão informados pelo form preenchido pelo usuário. Em seguida, será executado um código SQL para inserir esses dados no banco, aqui utilizaremos a função INSERT INTO, conforme código em Python + SQL. Dessa forma, o Streamlit irá se comunicar com o PostgreSQL para inserir os dados.
# carregando as funções em outros arquivos .py import services.database as db # função para inserir registros no banco de dados def incluir (nome, idade, profissao): db.cur.execute(""" INSERT into public.clientes (nome, idade, profissao) values('%s', '%s', '%s') """ % (nome, idade, profissao)) db.con.commit()
Todo esse processo iniciado no arquivo main.py finaliza com os registros sendo gravados no banco de dados, e então temos a parceria Streamlit e o PostgreSQL. Agora já temos a primeira letra do CRUD funcionando na aplicação.
Streamlit e o PostgreSQL ao Cubo
Portanto, dando continuidade na construção do CRUD com Streamlit e o PostgreSQL. Aqui mostramos como inserir os dados no PostgreSQL utilizando o Streamlit como porta de entrada. Dessa forma concluímos a primeira letra do CRUD, o Create. Então, até o próximo módulo, onde consultaremos os dados inseridos no PostgreSQL.
Conteúdos ao Cubo
Se curtiu, lá no Dados ao Cubo tem muito mais. Então, deixo algumas sugestões de conteúdos que você pode encontrar por lá, sempre falando sobre o mundo dos dados.
- Linguagem de Programação Python do Zero
- Extraindo Texto de Arquivos PDF com Python
- Leitura de Textos com Emoji
- Extraindo Dados do Twitter com Python
- Análise de Imagens com OpenCV
- ML.Net – Modelos em Produção com WebApi e Docker
- Visualização de Dados com Seaborn Python
- Tableau + Python = PyGWalker
Então, finalizo com um convite para você ser Parceiro de Publicação Dados ao Cubo e escrever o próximo artigo, compartilhando conhecimento para toda a comunidade de dados. Mas não esqueça de assinar a nossa Newsletter para ficar por dentro de todas as novidades.
Apaixonado por dados e tecnologia ❤️ , criando soluções com dados 📊 📈 , desde 2015, sempre buscando tornar os processos orientados! Com formação em Engenharia da Computação 💾 , MBA Gestão da Informação e Business Intelligence e Especialização em Data Science.
Também atuo como professor na área de dados. Nas horas vagas crio modelos de Machine Learning 🤖 com Python em desafios do Kaggle e escrevo no Dados ao Cubo sobre o mundo dos dados 🎲 !
Compartilhando conhecimentos sempre 🚀
2 Comments
Guilherme
6 de março de 2023Tiago Dias, o codigo completo tem disponivel no github ?
Tiago Dias
6 de março de 2023Opa Guilherme! Certeza! https://github.com/dadosaocubo/crud_streamlit