
Ter um portfólio online é essencial para se destacar no mercado. Se você atua na área de dados, tecnologia ou negócios, apresentar seus projetos de forma prática aumenta sua credibilidade, e uma das maneiras de fazer isso é criando seu portfólio com Streamlit.
O Streamlit é uma biblioteca Python simples e poderosa que permite criar aplicativos web de forma rápida, sem precisar ser um expert em desenvolvimento web.
Neste artigo, vou te mostrar como criar um portfólio usando o Streamlit e explicar passo a passo o que cada parte do código faz!
Por que usar Streamlit para portfólio?
- Fácil de usar: você escreve em Python, sem precisar lidar com HTML ou JavaScript;
- Rápido para publicar: com poucos comandos, você coloca seu site no ar;
- Moderno: visual limpo e responsivo.
Estrutura do projeto
Você vai criar um app com:
- Menu lateral para navegar pelas seções;
- Opção de mudar o idioma (Português e Inglês);
- Botões personalizados para mostrar seus projetos e contatos.
Vamos ao código para criar seu portfólio com Streamlit
Aqui está a base do nosso app:
# Imports necessários import streamlit as st import streamlit.components.v1 as components # Configurações iniciais da página st.set_page_config(page_title="Currículo - Seu Nome", layout="centered")
Essa parte configura o título da aba e o layout centralizado da página.
Criando botões personalizados
def custom_button(label, url): button_html = f""" <a href="{url}" target="_blank"> <div style="background-color: #808080; color: white; padding: 5px; border-radius: 5px; text-align: center;"> {label} </div> </a> """ components.html(button_html, height=50)
Aqui criamos uma função que gera um botão estilizado em HTML para abrir seus projetos ou redes sociais. O components.html permite inserir HTML customizado no Streamlit.
Tradução dinâmica
translations = { "en": {"about_me": "About Me", "projects": "Projects", "contact": "Contact"}, "pt": {"about_me": "Sobre Mim", "projects": "Projetos", "contact": "Contato"}, }
Esse dicionário guarda os textos em Português e Inglês. Assim, o mesmo app serve para públicos diferentes!
Barra lateral
language = st.sidebar.selectbox("Idioma / Language", ["pt", "en"], format_func=lambda x: "Português" if x == "pt" else "English") t = translations[language] st.sidebar.markdown(f"### {t['about_me']}") section = st.sidebar.radio("", [t["about_me"], t["projects"], t["contact"]])
Aqui criamos o menu lateral onde o usuário escolhe o idioma e a seção que quer ver.
Conteúdo principal
Depois, exibimos o conteúdo dependendo da seção escolhida:
if section == t["about_me"]: st.header(t["about_me"]) st.write("Aqui você escreve sobre sua formação e experiência.") elif section == t["projects"]: st.header(t["projects"]) custom_button("Projeto 1", "https://linkprojeto.com") elif section == t["contact"]: st.header(t["contact"]) custom_button("LinkedIn", "https://linkedin.com/in/seuperfil")
Como publicar seu portfólio com Streamlit?
Primeiro, crie um arquivo requirements.txt na raiz do projeto com:
streamlit
Depois que seu código estiver pronto, você pode publicar seu app de graça usando o Streamlit Community Cloud:
- Suba seu projeto no GitHub;
- Conecte o GitHub ao Streamlit Cloud;
- Seu app estará disponível com um link personalizado!


Cursos de programação gratuitos com certificado
Aprenda a programar e desenvolva soluções para o seu trabalho com Python para alcançar novas oportunidades profissionais. Aqui na Asimov você encontra:
- Conteúdos gratuitos
- Projetos práticos
- Certificados
- +20 mil alunos e comunidade exclusiva
- Materiais didáticos e download de código
Comentários
30xp