Write

루까까·2024년 10월 10일

Streamlit

목록 보기
2/8
post-thumbnail

필자가 사용했던 Streamlit의 기초라고 생각했던 부분들을 나열해보았다.

1. st.write

st.write(*args, unsafe_allow_html=False)

가장 기초적인 streamlit(이하 st 라고서술하겠다.)에서 쓰이는 가장 기초적인 함수이다.
해당 함수의 경우 사용자가 UI에 보이고자 하는 Text를 표시해준다.

import streamlit as st

st.write('hi')

이 함수는 단순한 텍스트뿐만 아니라 데이터프레임, 마크다운, 이모지 등 다양한 형태의 콘텐츠를 화면에 출력할 수 있는 강력한 도구이다. 쉽게 말해, 웹페이지에서 볼 수 있는 대부분의 텍스트 출력이 가능하다.

또한, unsafe_allow_html 옵션을 사용하면 HTML과 CSS로 텍스트를 꾸밀 수 있어, 글씨를 원하는 대로 커스터마이징할 수도 있다. 예를 들어, 텍스트에 색상이나 스타일을 추가하는 것도 가능하다.

하지만 이 옵션을 사용할 때 주의해야 할 점이 있다. 여러 컴포넌트가 혼재되어 있는 상황에서 CSS나 HTML을 사용하면 레이아웃이 깨지는 문제가 발생할 수 있다. 필자는 이런 이유로 unsafe_allow_html 옵션보다는 마크다운을 통해 간단하게 우회해서 표현하는 방법을 주로 사용했다.

2. st.text

st.text(body, *, help=None)

st.write랑 같은 기능을 제공하는 함수이다. 다만 단순하게 text를 표현하는 그 이상은 표현하지 못하기에 왠만해서는 잘 쓰일일이 없다.
다만 가끔 쓰이는 경우가 있는데
st.write를 사용해서 텍스트를 표현할 때 component의 배치에 따라 미묘하게 위아래가 맞지 않는다는 느낌이 있는데
이 때, st.text를 사용하면 위아래 맞게 표현되는 경우도 있다.
필자 또한, 이런 경우에 자주 써먹는다.

3. 다양한 텍스트 표현 함수

Streamlit은 st.title, st.header, st.subheader, st.markdown 등 다양한 텍스트를 표현하기 위한 함수들을 제공한다. 이 함수들의 이름만 봐도 어떤 역할을 하는지 쉽게 유추할 수 있을 만큼 단순하다.

예를 들어:

  • st.title: 가장 큰 제목을 나타낼 때 사용
  • st.header: 조금 작은 제목
  • st.subheader: 그보다 더 작은 제목
  • st.markdown: 마크다운 형식으로 텍스트를 표현

이 함수들은 각각의 이름에 맞는 텍스트 크기나 스타일을 자동으로 적용해준다. 하지만 슬프게도 이런 기능 대부분이 st.write로도 구현이 가능하다는 것이다.

예를 들어:

st.write('# hi') == st.title('hi')

이런 식으로 st.write에 마크다운을 사용하면 제목이나 서브헤더 등을 쉽게 표현할 수 있기 때문에, 필자는 따로 st.title이나 st.header 같은 함수를 잘 활용하지 않는다. 결국 st.write 하나로 대부분의 텍스트 표현이 가능하니, 상황에 따라 효율적으로 사용할 수 있다.

profile
기타치는 개발자

0개의 댓글