Streamlit fragments 사용하기
Streamlit fragments 사용하기
Streamlit
Streamlit fragments 사용하기
Streamlit의 st.column_config.LinkColumn
: 링크 컬럼을 활용한 데이터 표현
Streamlit은 데이터 애플리케이션을 쉽게 만들 수 있는 강력한 도구입니다. 그중 st.column_config.LinkColumn
은 데이터프레임의 특정 열에 링크를 추가하여 사용자에게 정보를 제공하는 데 매우 유용합니다. 이번 글에서는 LinkColumn
의 기본 사용법과 함께 간단한 예제를 소개하겠습니다.
LinkColumn
이란?
st.column_config.LinkColumn
은 데이터프레임에서 URL 링크를 포함한 열을 만들어 주는 기능입니다. 이를 통해 사용자는 클릭하여 외부 웹페이지나 리소스로 이동할 수 있습니다. 이 기능은 특히 데이터 시각화 대시보드나 보고서에서 유용하게 활용될 수 있습니다.
기본 사용법
LinkColumn
을 사용하기 위해서는 먼저 Streamlit의 column_config
모듈을 임포트해야 합니다. 그 후, 데이터프레임을 생성하고 링크 컬럼을 추가하면 됩니다.
예제: 웹사이트 링크 목록
아래 예제에서는 다양한 웹사이트의 링크를 포함한 데이터프레임을 생성해 보겠습니다.
전체 코드
아래는 전체 코드를 통합한 예제입니다.
```pythonimport streamlit as st
import pandas as pd
# 웹사이트 데이터 생성
= {
data '사이트 이름': ['Google', 'YouTube', 'GitHub'],
'링크': [
'https://www.google.com',
'https://www.youtube.com',
'https://www.github.com'
]
}
= pd.DataFrame(data)
df
st.data_editor(
df,={
column_config"링크": st.column_config.LinkColumn(
"링크", display_text="Open profile")
} )
### 코드 설명
1. **라이브러리 임포트**: Streamlit과 pandas를 임포트하여 웹 애플리케이션을 구성합니다.
2. **데이터프레임 생성**: 웹사이트 이름과 해당 URL 링크를 포함한 데이터프레임을 생성합니다.
3. **링크 컬럼 추가**: 링크를 마크다운 형식으로 변환하여 사용자가 클릭할 수 있도록 합니다. `lambda` 함수를 사용하여 URL에서 도메인 부분만 추출하여 표시합니다.
4. **데이터 표시**: `st.markdown`을 사용하여 HTML 링크가 포함된 데이터프레임을 Streamlit 애플리케이션에 표시합니다.
<div class="d-flex justify-content-center mt-5">
<h3>카테고리 다른 글</h3>
</div>
:::{#quarto-navigation-envelope .hidden}
[BookShelf]{.hidden .quarto-markdown-envelope-contents render-id="cXVhcnRvLWludC1zaWRlYmFyLXRpdGxl"}
[BookShelf]{.hidden .quarto-markdown-envelope-contents render-id="cXVhcnRvLWludC1uYXZiYXItdGl0bGU="}
[Home]{.hidden .quarto-markdown-envelope-contents render-id="cXVhcnRvLWludC1uYXZiYXI6SG9tZQ=="}
[/index.html]{.hidden .quarto-markdown-envelope-contents render-id="cXVhcnRvLWludC1uYXZiYXI6L2luZGV4Lmh0bWw="}
[Blog]{.hidden .quarto-markdown-envelope-contents render-id="cXVhcnRvLWludC1uYXZiYXI6QmxvZw=="}
[/blog/blog.html]{.hidden .quarto-markdown-envelope-contents render-id="cXVhcnRvLWludC1uYXZiYXI6L2Jsb2cvYmxvZy5odG1s"}
[Books]{.hidden .quarto-markdown-envelope-contents render-id="cXVhcnRvLWludC1uYXZiYXI6Qm9va3M="}
[/book_blog/book_blog.html]{.hidden .quarto-markdown-envelope-contents render-id="cXVhcnRvLWludC1uYXZiYXI6L2Jvb2tfYmxvZy9ib29rX2Jsb2cuaHRtbA=="}
[DashBoard]{.hidden .quarto-markdown-envelope-contents render-id="cXVhcnRvLWludC1uYXZiYXI6RGFzaEJvYXJk"}
[/dashboard_blog/dashboard_blog.html]{.hidden .quarto-markdown-envelope-contents render-id="cXVhcnRvLWludC1uYXZiYXI6L2Rhc2hib2FyZF9ibG9nL2Rhc2hib2FyZF9ibG9nLmh0bWw="}
[About]{.hidden .quarto-markdown-envelope-contents render-id="cXVhcnRvLWludC1uYXZiYXI6QWJvdXQ="}
[/about.html]{.hidden .quarto-markdown-envelope-contents render-id="cXVhcnRvLWludC1uYXZiYXI6L2Fib3V0Lmh0bWw="}
:::{.hidden .quarto-markdown-envelope-contents render-id="Zm9vdGVyLWNlbnRlcg=="}
gabrielwithhappy@gmail.com
:::
:::
:::{#quarto-listing-pipeline .hidden}
[$e = mC^2$]{.hidden .quarto-markdown-envelope-contents render-id="cXVhcnRvLWVuYWJsZS1tYXRoLWlubGluZQ=="}
:::{.hidden .quarto-markdown-envelope-contents render-id="cGlwZWxpbmUtbGlzdGluZy1saXN0aW5n"}
```{=html}
<table class="quarto-listing-table table">
<thead>
<tr>
<th>
Date
</th>
<th>
Title
</th>
<th>
Author
</th>
</tr>
</thead>
<tbody class="list">
<tr data-index='0' data-categories='QUklMkNBV1MlMkNBZ2lsZSUyQ0JpZ1F1ZXJ5JTJDQm9va1JldmlldyUyQ0J1c25pZXNzJTIwQW5hbHlzaXMlMkNEYXRhJTIwVmlzdWFsaXphdGlvbiUyQ0RhdGFiYXNlJTJDRGVzaWduUGF0dGVybiUyQ0Rldk9wcyUyQ0RvY2tlciUyMENvbXBvc2UlMkNHSVQlMkNHaXQlMkNIdWdnaW5nRmFjZSUyQ0ppbmphJTJDSmlyYSUyQ0tNUyUyQ1BhbmRhcyUyQ1B5bW9uZ28lMkNQeXRob24lMkNRdWFydG8lMkNSZWZhY3RvcmluZyUyQ1N0cmVhbWxpdCUyQ1dlYiUyQ0Zhc3RhcGk=' data-listing-date-sort='32503680000000' data-listing-file-modified-sort='1754663489269' data-listing-date-modified-sort='NaN' data-listing-reading-time-sort='5' data-listing-word-count-sort='952' data-listing-title-sort='전체 카테고리' data-listing-filename-sort='30000101.qmd'>
Jan 1, 3000
전체 카테고리
Sep 21, 2024
Streamlit 멀티 select 사용하기
Sep 21, 2024
Streamlit selectbox를 사용하기
Sep 19, 2024
Streamlit fragments 사용하기
Sep 19, 2024
Streamlit form 사용하기
Sep 19, 2024
Streamlit 데이터프레임 수정하기
Sep 18, 2024
Streamlit docker로 배포하기
Sep 18, 2024
Streamlit 실시간 업데이트 사용하기
Sep 18, 2024
Streamlit에서 다이얼로그 사용하기
Sep 18, 2024
Streamlit의 유지보수와 디버깅 팁
Sep 17, 2024
Streamlit cache_resource 사용하기
Sep 16, 2024
Streamlit cache 사용하기
Sep 15, 2024
Streamlit 데이터프레임 선택하기
Sep 14, 2024
Streamlit 다중 page 구성하기
Sep 13, 2024
Streamlit Session_state 사용하기
Sep 12, 2024
Streamlit을 활용한 기본 시각화 도구
Sep 12, 2024
Streamlit에 Plotly 차트 적용하기
Sep 11, 2024
Streamlit에서 파일 업로드하기
Sep 11, 2024
Streamlit에 SQLite 데이터베이스 적용
Sep 10, 2024
Streamlit UI 컴포넌트 소개
Sep 9, 2024
Streamlit 사용 사례
Sep 9, 2024
Streamlit 설치 및 환경설정
Sep 9, 2024
Streamlit 애플리케이션 구조 이해
Sep 9, 2024
Streamlit layout 설정하는 방법
Sep 8, 2024
Streamlit이란 무엇인가요?
Sep 6, 2024
Streamlit Cloud로 앱 배포하기
No matching items
:::
:::