Spaces:
Runtime error
Runtime error
File size: 7,310 Bytes
f652093 e891f47 f652093 e891f47 f652093 e891f47 f652093 e891f47 300db05 e891f47 f652093 e891f47 ee83c82 e891f47 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 |
import streamlit as st
from pathlib import Path
import base64
# Initial page config
st.set_page_config(
page_title='Streamlit组件清单',
page_icon="📖",
layout="wide",
initial_sidebar_state="expanded",
)
def main():
# cs_sidebar()
cs_body()
return None
def img_to_bytes(img_path):
img_bytes = Path(img_path).read_bytes()
encoded = base64.b64encode(img_bytes).decode()
return encoded
# sidebar
def cs_sidebar():
st.sidebar.markdown(
'''[<img src='data:image/png;base64,{}' class='img-fluid' width=32 height=32>](https://streamlit.io/)'''.format(
img_to_bytes("logomark_website.png")), unsafe_allow_html=True)
st.sidebar.header('Streamlit组件清单')
st.sidebar.markdown('''
<small>[Streamlit文档页界面](https://docs.streamlit.io/en/stable/api.html), | [Streamlit首页](https://www.streamlit.io/).</small>
''', unsafe_allow_html=True)
st.sidebar.markdown('__安装及引用方法__')
st.sidebar.code('pip install streamlit')
st.sidebar.markdown('引入Streamlit后的简写方法')
st.sidebar.code('import streamlit as st')
st.sidebar.markdown('__给侧边栏添加组件__')
st.sidebar.code('''
st.sidebar.<widget>
a = st.sidebar.radio(\'R:\',[1,2])
''')
st.sidebar.markdown('__命令行__')
st.sidebar.code('''
streamlit --help
streamlit run your_script.py
streamlit hello
streamlit config show
streamlit cache clear
streamlit docs
streamlit --version
''')
st.sidebar.markdown('__尝鲜版安装方法__')
st.sidebar.markdown('[Beta版和还在测试中功能](https://docs.streamlit.io/en/stable/api.html#beta-and-experimental-features)')
st.sidebar.code('''
pip uninstall streamlit
pip install streamlit-nightly --upgrade
''')
st.sidebar.markdown(
'''<small>[Streamlit组件清单v1.0.0](https://github.com/daniellewisDL/streamlit-cheat-sheet) | Oct 2021</small>''',
unsafe_allow_html=True)
return None
##########################
# 主体部分
##########################
def cs_body():
col1, col2, col3 = st.columns(3)
col1.subheader('魔法命令')
col1.code('''# 最简单的魔法命令 `st.write()`
\'\'\' _This_ is some __Markdown__ \'\'\'
a=3
'dataframe:', data
''')
# Display text
col1.subheader('显示文字')
col1.code('''
st.text('固定宽度的文字')
st.markdown('_Markdown内容_') # see *
st.caption('Balloons. Hundreds of them...')
st.latex(r\'\'\' e^{i\pi} + 1 = 0 \'\'\')#嵌入公式
st.write('Most objects') # df, err, func, keras!
st.write(['st', 'is <', 3]) # see *
st.title('我的title')
st.header('我的标题')
st.subheader('我的副标题')
st.code('for i in range(8): foo()')
*可选参数 unsafe_allow_html = True
''')
# Display data
col1.subheader('显示数据')
col1.code('''
st.dataframe(我的dataframe)
st.table(data.iloc[0:10])
st.json({'foo':'bar','fu':'ba'})
st.metric(label="Temp", value="273 K", delta="1.2 K")
''')
# Display charts
col1.subheader('显示各类图表')
col1.code('''
st.line_chart(data)
st.area_chart(data)
st.bar_chart(data)
st.pyplot(fig)
st.altair_chart(data)
st.vega_lite_chart(data)
st.plotly_chart(data)
st.bokeh_chart(data)
st.pydeck_chart(data)
st.deck_gl_chart(data)
st.graphviz_chart(data)
st.map(data)
''')
# Display media
col1.subheader('显示媒体文件')
col1.code('''
st.image('./header.png')
st.audio(data)
st.video(data)
''')
# Display interactive widgets
col2.subheader('交互类组件')
col2.code('''
st.button('需要点我的时候就点我一下')
st.download_button('下载按钮', data)
st.checkbox('检查框')
st.radio('单选按钮', [1,2,3])
st.selectbox('下拉式单选', [1,2,3])
st.multiselect('多选框', [1,2,3])
st.slider('滑动选择器', min_value=0, max_value=10)
st.select_slider('滑动选择器', options=[1,'2'])
st.text_input('通过我可以输入一些文字')
st.number_input('Enter a number')
st.text_area('通过我可以输入多行文字')
st.date_input('日期选择框')
st.time_input('时间选择框')
st.file_uploader('File uploader', type=["csv","png","xlsx","json"])
st.color_picker('点我选择一种颜色')
''')
col2.write('带返回值的组件:')
col2.code('''
for i in range(int(st.number_input('Num:'))): foo()
if st.sidebar.selectbox('I:',['f']) == 'f': b()
my_slider_val = st.slider('Quinn Mallory', 1, 88)
st.write(slider_val)
''')
# Control flow
col2.subheader('控制流组件')
col2.code('''
st.stop()
''')
# Lay out your app
col2.subheader('对你的APP进行布局')
col2.code('''
st.form('表单定义组件')
st.form_submit_button('表单提交按钮')
st.container()
st.columns(这里放要分几列的数字)
col1, col2 = st.columns(2)
col1.subheader('Columnisation')
st.expander('展开')
with st.expander('点我进行展开'):
st.write('次数可以写点什么')
''')
col2.write('在表单中使用其他组件:')
col2.code('''
with st.form(key='my_form'):
text_input = st.text_input(label='Enter some text')
submit_button = st.form_submit_button(label='Submit')
''')
# Display code
col2.subheader('显示代码')
col2.code('''
st.echo()
with st.echo():
st.write('代码将被执行并打印结果')
''')
# Display progress and status
col3.subheader('显示进度及状态')
col3.code('''
st.progress(数字可以最大到100,意思是100%)
st.spinner()
with st.spinner(text='正在进行中'):
time.sleep(5)
st.success('完成')
st.balloons()
st.error('错误信息')
st.warning('警告信息')
st.info('通知信息')
st.success('成功信息')
st.exception(e)
''')
# Placeholders, help, and options
col3.subheader('预设内容, 帮助及操作选项')
col3.code('''
st.empty()
my_placeholder = st.empty()
my_placeholder.text('替换完成!')
st.help(pandas.DataFrame)
st.get_option(key)
st.set_option(key, value)
st.set_page_config(page_title="streamlit", page_icon="", layout='wide')#设置页面模式
''')
# Mutate data
col3.subheader('表格数据操作方法')
col3.code('''
DeltaGenerator.add_rows(data)
my_table = st.table(df1)
my_table.add_rows(df2)
my_chart = st.line_chart(df1)
my_chart.add_rows(df2)
''')
# Optimize performance
col3.subheader('优化性能方法')
col3.code('''
@st.cache
... def fetch_and_clean_data(url):
... # Mutate data at url
... return data
# Executes d1 as first time
d1 = fetch_and_clean_data(ref1)
# Does not execute d1; returns cached value, d1==d2
d2 = fetch_and_clean_data(ref1)
# Different arg, so function d1 executes
d3 = fetch_and_clean_data(ref2)
''')
col3.subheader('其他API查看链接')
col3.markdown('''
<small>[State API](https://docs.streamlit.io/en/stable/session_state_api.html)</small><br>
<small>[Theme option reference](https://docs.streamlit.io/en/stable/theme_options.html)</small><br>
<small>[Components API reference](https://docs.streamlit.io/en/stable/develop_streamlit_components.html)</small><br>
<small>[API cheat sheet](https://share.streamlit.io/daniellewisdl/streamlit-cheat-sheet/app.py)</small><br>
''', unsafe_allow_html=True)
return None
if __name__ == '__main__':
main()
|