Fala galera do mundo dos dados! Todo mundo bem? Espero que sim! Muitas saudades dos conteúdos ao Cubo?!?!?! Então o Dados ao Cubo mostra como criar um CRUD com Streamlit e o PostgreSQL. Vai estar nessa missão também as linguagens Python e SQL para construir uma aplicação Web e fazer ela se comunicar com o banco de dados.
O conteúdo completo vai estar dividido em temas para não ficar muito extenso, ao final de todos os posts, teremos 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 – Você está começando a missão!
- Inserir Dados com Streamlit e o PostgreSQL
- Consultar Dados com Streamlit e o PostgreSQL
- Deletar Dados com Streamlit e o PostgreSQL
- Alterar Dados com Streamlit e o PostgreSQL
Então, chega de conversa fiada e vamos ao que interessa!
O que é CRUD?
O acrônimo CRUD é uma referência a Create, Read, Update e Delete, ou seja, criar, ler, atualizar e deletar. Essas são as operações básicas que uma aplicação faz em um banco de dados. Então um CRUD é uma aplicação que realiza essas funções.
Ferramentas para construir um CRUD?
Para construir o CRUD, utilizaremos a linguagem Python que vai estar tanto na aplicação WEB quanto na comunicação com o banco de dados. Já para manipular os dados no banco, teremos alguns scripts SQL. E para para facilitar a nossa vida, utilizaremos o Streamlit, um framework bem simples e prático para construção de aplicações WEB.
CRUD ao Cubo
Aqui construiremos toda a estrutura da nossa aplicação, que estará estruturada em módulos para facilitar a compreensão. Confere o detalhe de cada um desses módulos.
Controller do CRUD
Primeiramente o nosso módulo de controle, nele cuidaremos da comunicação com o banco de dados. Então, teremos funções para cada uma das operações do CRUD. Fica tranquilo que o código de cada um dessas funções vão estar em detalhes conforme o objetivo de cada função.

A comunicação do controller será com o serviço de banco de dados, e com as páginas da nossa aplicação web.
Page do CRUD
Falando em páginas, teremos uma página para cada função do crud, como pode ver no módulo page, na imagem abaixo

As páginas serão responsáveis pela exibição em tela da função respectiva e todo o seu funcionamento comunicando com o controller. Essa comunicação da página web com o banco de dados PostgreSQL vai ser suportada pelo serviço database.
Services do CRUD
Sendo assim, temos o módulo de serviço para a comunicação como banco. A lib psycopg2 vai se comunicar com o banco através da função connect e a função cursor vai permitir a execução de códigos SQL através da aplicação Python.

Todos esses módulos precisam ser reunidos na função principal da aplicação.
Main do CRUD
Finalmente já temos todos os módulos necessários, agora é possível configurar a interação do usuário com as páginas. A biblioteca Streamlit deixa todo esse processo bem simples, abstraindo bastante coisa para construção de uma aplicação web.

O Streamlit é um framework muito bom, com ele é possível dar vida a aplicações web com Python de maneira simples e prática. Com poucas linhas de códigos temos uma aplicação no ar. Quando estiver tudo pronto utilizaremos o comando streamlit run main.py para rodar nossa aplicação.
Até o próximo módulo, onde teremos os detalhes de como inserir dados no PostgreSQL com uma aplicação web construída com Python e o framework Streamlit.
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
- O Guia do XGBoost com Python
- Criando Modelos de Machine Learning com Pipeline do Scikit-Learn
- Extraindo Texto de Arquivos PDF com Python
- Leitura de Textos com Emoji
- Introdução a Competições de Ciência de Dados no Kaggle
- Visualização de Dados com Seaborn Python
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. Não esqueça de assinar a nossa Newsletter para ficar por dentro de todas as novidades.

Baiano, apaixonado por dados e tecnologia, amante das inovações tecnológicas que facilitam a vida humana! Formado em Engenharia da Computação e com MBA em Gestão da Informação e Business Intelligence e especialização em Data Science. Atualmente atua como Data Tech Lead na Lopes, além de Professor na área de dados e nas horas vagas cria uns modelos de Machine Learning com Python e soluções diversas com dados!