Banco de dados Python SQL 2

Inserir Dados com Streamlit e o PostgreSQL

Inserir Dados com Streamlit e o PostgreSQL

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:

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.

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. 

Gostou? Compartilhe!

2 Comments

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *