Web Development/streamlit

웹문서상의 문법복습

JackSmith 2023. 5. 23.

학교에서 파이썬 조별과제 프로젝트때, streamlit이라는 라이브러리를 쓰기로 가닥이 잡혔다.

그래서 다시 오랜만에 streamlit라이브러리에서의 웹문서 문법을 한번 간략하게 짚고 넘어가려고 한다.

 

1.헤더

헤더는 앞에 #(샾)을 넣어서 구현할 수 있고 #한개에서 #여섯개까지로 총 6개의 헤더가 약속되어 있다.

2.순서가 없는 리스트

앞에 (-) 또는 (+)를 붙여서 구현가능하다.

신기한게 (*)을 붙이면 좀더 진하게 도트마크가 표시된다.ㄷㄷ

 

그리고 한개 더 신기한게, 줄바꿈 문자인 '\n'이 안먹힌다.

(이에 대해서 좀더 해결책을 알아보았다. 아래글 참조)

 

3. 줄바꿈 구현하기

st.write()메소드 뿐만 아니라, st.text(), st.markdown()라는 메소드도 있다.

여기서 '\n'이 먹히게 하려면 st.markdown()을 써줘야 한다. 그래야 마크다운 문법이 먹히는 것 같다.

 

 

4.리스트 객체에서 원소들을 뽑아 순차적으로 순서가 없는 리스트로 구현하기

마찬가지로 for문 돌려서 코드의 양을 줄일 수 있는데, 이때 유념할 것은 큰따옴표 스코프 옆에 있는 f이다.

여기서 f는 파이썬 문법으로서, 파이썬의 문자열 포매팅 방식중 하나이다. 만약 f를 안붙이면 이렇게 된다.

item이라는 값이 index로 쓰이지 못하고, 그냥 단순한 상수취급을 받게 된다.

 

5.리스트 객체에서 원소들을 뽑아 순차적으로 순서가 있는 리스트로 구현하기

streamlit에서 순서가 있는 리스트를 별도로 제공하지는 않는다. 따라서 우리가 for문에서 자동으로 인덱스를 추출할 때 쓰는 방식으로 순서가 있는 리스트를 구현하는 수밖에 없다.

인덱스를 가져오고자, in키워드 뒤에 enumerate()를 써서 for키워드 뒤에 변수i에 인덱스 1부터 순차적으로 부여할 수 있다.

(만약 인덱스 0부터 순차적으로 쓸거면 굳이 enumerate를 써줄 필요가 없다)

 

 

 

import pandas as pd
import streamlit as st

view = [100, 150, 300]

st.write('# this is header')
st.write('## this is header2')
st.write('### this is header3')
st.write('#### this is header4')
st.write('##### this is header5')
st.write('###### this is header6     (-The End-)')
st.write('- this is list_item')
st.write('* this is accent_list_item')
st.write(' this is paragraph \n\n\n\n\n\n')

text = "첫 번째 줄\n두 번째 줄\n세 번째 줄"

st.write(text)
st.text(text)
st.markdown(text)


my_list = [1,2,3]

for item in my_list:
    st.write(f"- {item}")

my_list = ["첫 번째 항목", "두 번째 항목", "세 번째 항목"]

st.write("순서가 있는 리스트:")
for i, item in enumerate(my_list, start=1):
    st.write(f"{i}. {item}")

st.write(list)

st.write('this is pure data')
st.write(view)

st.write('this is bar chart')
st.bar_chart(view)

댓글