ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

主要概念 - 跳到主页

主要概念 - 跳到主页 一种概要, 应用这样的程序, 它是按照从上至下的顺序来运行的, 脚本呢, 每次只要用户去打开针对您那个应用程序的浏览器选项卡的时候, 这个脚本就得进行再次执行, 当脚本开始执行了, 就在浏览器里实时描绘出它的输出, 而且该脚本利用缓存从而去避免重新计算那些耗费资源的函数, 所以它的更新速度是相当快的, 每当用户和小部件有交互动作的时候, 您的脚本就会再次执行, 并且该小部件的输出的值会在运行的阶段被设置成新的值。应用程序当中能够包含多个页面, 而这些页面则是在文件夹里那些单独的文件中被定义为pages。运行, 有运行指令, 指令里又包含运行指令当中的1.1运行指令。# Runningpython -m streamlit run your_script.py# is equivalent to:streamlit run your_script.py1.2 重新运行每一次您萌生更新应用程序的想法之际, 务必要保存源文件。当您开展如此这般的操作之时, 会进行是否存在更改的检测, 进而询问您是不是要重新运行应用程序。去选取屏幕右上角的“始终重新运行”选项, 以此在每次源代码出现更改的时候自动更新您的应用程序。是以在快速交互循环范畴内开展工作。1.3 数据流每当屏幕之上有某些内容需更新之际, 便会自上至下再度运行全部脚本。此情形可能于两种状况之下出现:有一种东西叫做装饰器, 它能够让从事开发的人员, 在应用程序再次进行运行期间, 可将某些代价高昂的计算予以略过。2. 显示2.1 数据框您能够把几乎任何东西传送给st.write(), 诸如文本, 数据, 图形, 图表等等。别忧虑, 这个问题会被解决, 且会按恰当的方式展现出来。importstreamlitasstimportpandasaspdimportnumpyasnp dataframepd.DataFrame( np.random.randn(10,20), columns(col%d%iforiinrange(20)))# 在不调用任何 Streamlit 方法的情况下写入应用程序dataframe# 绘制交互式表格的方法st.dataframe(dataframe)# 使用 Pandas Styler 对象突出显示交互式表中的某些元素st.dataframe(dataframe.style.highlight_max(axis0))# 静态表生成的方法st.table(dataframe)2.2 折线图使用 轻松地将折线图添加到您的应用程序中 st.()importstreamlitasstimportnumpyasnpimportpandasaspd chart_datapd.DataFrame( np.random.randn(20,3), columns[a,b,c]) st.line_chart(chart_data)2.3 组件当数据或者对象被你调整到你期望处于的那种状态的时候在这个时候你能够去添加st.()、 st.()或者其他此类相同类型的小部件st.()。importstreamlitasstimportpandasaspdimportnumpyasnp xst.slider(x)# this is a widgetst.write(x,squared is, x*x) st.text_input(Your name, keyname) st.session_state.name# You can access the value at any point with:st.cache_datadefshow_chart_data(): chart_datapd.DataFrame( np.random.randn(20,3), columns[a,b,c]) chart_dataifst.checkbox(Show dataframe): show_chart_data() dfpd.DataFrame({first column: [1,2,3,4],second column: [10,20,30,40] }) optionst.selectbox(Which number do you like best?, df[first column])You selected: , option3. 布局3.1 边栏设在左侧面板侧边栏里的进行组织的小部件st.。被传递过来的每一个元素都st.是固定于左侧的。假若是您想要把选择框以及滑块增添至侧边栏, 需要运用st....而并非st. st.:importstreamlitasst# Add a selectbox to the sidebar:add_selectboxst.sidebar.selectbox(How would you like to be contacted?, (Email,Home phone,Mobile phone) )# Add a slider to the sidebar:add_sliderst.sidebar.slider(Select a range of values,0.0,100.0, (25.0,75.0) )3.2 并排放置st.让您可以并排放置小部件importstreamlitasst left_column, right_columnst.columns(2)# You can use a column just like st.sidebar:left_column.button(Press me!)# Or even better, call Streamlit functions inside a with block:withright_column: chosenst.radio(Sorting hat, (Gryffindor,Ravenclaw,Hufflepuff,Slytherin)) st.write(fYou are in{chosen}house!)3.3 进度importstreamlitasstimporttimeStarting a long computation...# Add a placeholderlatest_iterationst.empty() barst.progress(0)foriinrange(100):# Update the progress bar with each iteration.latest_iteration.text(fIteration{i1}) bar.progress(i1) time.sleep(0.1)...and now we\re done!4. 主题保存主题于配置部分当中。为应用程序定义主题之后, 它会在主题选择器里显示成“自定义主题”, 且进行默认应用, 并非是所包含的浅色以及深色主题。另外一种尝试不同主题颜色的办法是, 点开“保存时运行”选项, 对.toml文件进行编辑, 随后留意在应用新主题颜色时, 应用程序重新运行的状况。5. 缓存需要在其中缓存函数的话, 你得运用两个装饰器st.以及st.当中的一个去装饰它, 每当对该函数进行调用的时候, 它都会去检查两件事情:输入参数的值。函数内部的代码。它会去运行那个函数, 然后把返回的值存储到缓存里。在下次使用相同的参数以及代码去调用这个函数的时候, 比如说当用户与应用程序进行交互的时候, 将会完全不再执行该函数, 而是直接返回缓存当中的值。6. 网页向现有应用程序添加更多页面如下所示于存有主脚本的文件夹里, 去创建一个全新的pages文件夹。假定您的主脚本名称是.py , 在该文件夹内去增添新的.py文件pages , 以此给您的应用程序增添更多页面, 如同平常那样去运行run.py。就是如此这般那个.py脚本当下会对应于您所拥有的应用程序的主页。您会在侧边栏页面选择器当中看到该文件夹里面的其他脚本pages。
RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进