Home
Login

Streamlit é uma biblioteca Python que permite criar aplicações web personalizadas e bonitas com código Python puro, para áreas como aprendizado de máquina, ciência de dados e muito mais.

Apache-2.0Python 39.9kstreamlit Last Updated: 2025-06-14

Streamlit: A maneira mais rápida de construir aplicativos de dados em Python

Introdução

Streamlit é uma biblioteca Python de código aberto projetada para permitir que cientistas de dados e engenheiros de aprendizado de máquina criem aplicativos da Web bonitos e interativos de forma rápida e fácil. Ele simplifica o processo de transformar scripts de ciência de dados em aplicativos da Web compartilháveis, sem a necessidade de experiência em desenvolvimento front-end.

Conceitos Principais:

  • Abrace os scripts Python: O Streamlit permite que você construa aplicativos usando scripts Python puros, sem a necessidade de escrever HTML, CSS ou JavaScript.
  • Atualizações em tempo real: Os aplicativos Streamlit são atualizados automaticamente sempre que você modifica o código e salva, permitindo iteração e experimentação rápidas.
  • Simples e fácil de usar: O Streamlit oferece uma API intuitiva que facilita a adição de vários elementos de UI, como texto, gráficos, controles deslizantes, botões, etc.
  • Orientado a dados: O Streamlit é projetado especificamente para fluxos de trabalho de ciência de dados, facilitando a exibição e manipulação de dados.
  • Sem necessidade de experiência em front-end: O Streamlit abstrai a complexidade do desenvolvimento front-end, permitindo que você se concentre em dados e modelos.

Informações do Repositório do Projeto

  • Repositório GitHub: https://github.com/streamlit/streamlit
  • Linguagem de programação principal: Python
  • Licença: Apache License 2.0
  • Stars: Mais de 23 mil (em 26 de janeiro de 2024)
  • Forks: Mais de 2 mil (em 26 de janeiro de 2024)
  • Contribuidores: Mais de 300

Principais Características

  • API simples e fácil de usar: O Streamlit oferece uma API concisa para criar vários elementos de UI, como:
    • st.write(): Exibe texto, dados, gráficos, etc.
    • st.slider(): Cria um controle deslizante.
    • st.button(): Cria um botão.
    • st.selectbox(): Cria uma caixa de seleção suspensa.
    • st.dataframe(): Exibe um DataFrame do Pandas.
    • st.line_chart(): Exibe um gráfico de linhas.
    • st.map(): Exibe um mapa.
    • st.file_uploader(): Envia arquivos
  • Execução automática: Os aplicativos Streamlit são executados automaticamente sempre que você modifica o código e salva, permitindo iteração rápida.
  • Cache: O Streamlit possui um mecanismo de cache integrado que pode armazenar em cache os resultados dos cálculos, melhorando o desempenho do aplicativo. Use o decorador @st.cache_data para armazenar em cache os resultados da função.
  • Estado da sessão: O Streamlit permite que você gerencie o estado do aplicativo usando st.session_state, permitindo que você crie aplicativos interativos mais complexos.
  • Componentes: O Streamlit suporta componentes personalizados, permitindo que você estenda a funcionalidade do Streamlit e integre bibliotecas de terceiros.
  • Temas: O Streamlit permite que você personalize a aparência do seu aplicativo, incluindo cores, fontes, etc.
  • Implantação: Os aplicativos Streamlit podem ser facilmente implantados em várias plataformas, como Streamlit Community Cloud, Heroku, AWS, Google Cloud, etc.
  • Suporte da comunidade: O Streamlit tem uma comunidade ativa que fornece documentação, tutoriais e exemplos abrangentes.

Módulos e Funcionalidades Principais

  • streamlit: A biblioteca principal, contendo a API para construir aplicativos.
  • streamlit.components.v1: A API para criar componentes personalizados.
  • streamlit.config: Usado para configurar o comportamento do aplicativo Streamlit.
  • streamlit.delta_generator: A API para gerar elementos de UI.
  • streamlit.runtime: O ambiente de tempo de execução do aplicativo Streamlit.
  • streamlit.web: O servidor Web do aplicativo Streamlit.

Casos de Uso

O Streamlit pode ser usado para construir vários aplicativos de dados, como:

  • Visualização de dados: Crie gráficos e painéis interativos para explorar e analisar dados.
  • Implantação de modelos de aprendizado de máquina: Implante modelos de aprendizado de máquina como aplicativos da Web para que os usuários possam interagir com os modelos.
  • Exploração de dados: Construa ferramentas interativas para explorar e entender os dados.
  • Anotação de dados: Crie ferramentas de anotação de dados para ajudar a anotar dados.
  • Educação e demonstração: Crie demonstrações interativas para mostrar conceitos e técnicas de ciência de dados.
  • Ferramentas internas: Construa ferramentas de dados internas para melhorar a eficiência da equipe.

Código de Exemplo

Aqui está um exemplo simples de aplicativo Streamlit:

import streamlit as st
import pandas as pd
import numpy as np

st.title('Meu Primeiro Aplicativo Streamlit')

st.write('Olá, mundo!')

# Cria um DataFrame
data = pd.DataFrame({
    'col1': [1, 2, 3, 4],
    'col2': [5, 6, 7, 8]
})

# Exibe o DataFrame
st.write('Aqui está um DataFrame:')
st.dataframe(data)

# Cria um controle deslizante
x = st.slider('Selecione um valor para x', 0, 100, 50)

# Exibe o valor do controle deslizante
st.write('O valor de x é:', x)

# Cria um gráfico de números aleatórios
chart_data = pd.DataFrame(
    np.random.randn(20, 3),
    columns=['a', 'b', 'c'])

st.line_chart(chart_data)

Instalação

Você pode instalar o Streamlit usando pip:

pip install streamlit

Execução

Para executar um aplicativo Streamlit, execute o seguinte comando na linha de comando:

streamlit run seu_app.py

Onde seu_app.py é o arquivo Python do seu aplicativo Streamlit.

Vantagens

  • Desenvolvimento rápido: O Streamlit permite que você construa aplicativos de dados rapidamente, sem a necessidade de escrever muito código.
  • Fácil de usar: O Streamlit oferece uma API intuitiva que facilita a adição de vários elementos de UI.
  • Interatividade: Os aplicativos Streamlit são interativos, permitindo que os usuários interajam com os dados.
  • Implantabilidade: Os aplicativos Streamlit podem ser facilmente implantados em várias plataformas.
  • Suporte da comunidade: O Streamlit tem uma comunidade ativa que fornece documentação, tutoriais e exemplos abrangentes.

Desvantagens

  • Personalização limitada: A personalização do Streamlit é relativamente limitada e pode não atender a todos os requisitos do aplicativo.
  • Desempenho: Para aplicativos complexos, o desempenho do Streamlit pode não ser tão bom quanto o de estruturas da Web tradicionais.
  • Controle front-end mais fraco: Não é possível controlar a UI tão finamente quanto com as estruturas front-end tradicionais.

Resumo

Streamlit é uma ferramenta poderosa que pode ajudar cientistas de dados e engenheiros de aprendizado de máquina a construir aplicativos da Web bonitos e interativos de forma rápida. Ele simplifica o processo de transformar scripts de ciência de dados em aplicativos da Web compartilháveis, sem a necessidade de experiência em desenvolvimento front-end. Embora tenha algumas limitações em termos de personalização e desempenho, sua facilidade de uso e capacidade de desenvolvimento rápido o tornam uma escolha ideal para muitos projetos de ciência de dados.

Todos os detalhes devem ser confirmados no site oficial (https://github.com/streamlit/streamlit)