Additional Streamlit features

所以你已经阅读了所有关于Streamlit的基本概念,并在高级概念中体验了缓存和会话状态。但是那些额外的功能呢?这里快速浏览一些额外的功能,将你的应用提升到下一个层次。

Streamlit 默认支持浅色和深色主题。Streamlit 会首先检查查看应用程序的用户是否通过其操作系统和浏览器设置了浅色或深色模式偏好。如果有,则将使用该偏好。否则,默认应用浅色主题。

你也可以通过“⋮” → “设置”来更改当前主题。

Changing Themes

想要在应用程序中添加自己的主题吗?“设置”菜单中有一个主题编辑器,可以通过点击“编辑活动主题”来访问。您可以使用此编辑器尝试不同的颜色,并实时查看应用程序的更新。

Editing Themes

当您对您的工作感到满意时,可以通过在[theme]配置部分设置配置选项来保存主题。在您为应用程序定义了主题后,它将作为“自定义主题”出现在主题选择器中,并将默认应用,而不是包含的浅色和深色主题。

有关定义主题时可用的更多选项信息可以在主题选项文档中找到。

push_pin

注意

主题编辑器菜单仅在本地开发中可用。如果您已使用Streamlit Community Cloud部署了您的应用程序,“编辑活动主题”按钮将不再显示在“设置”菜单中。

star

提示

另一种尝试不同主题颜色的方法是打开“保存时运行”选项,编辑你的config.toml文件,并观察你的应用程序在应用新主题颜色后重新运行。

随着应用程序的规模增大,将其组织成多个页面变得非常有用。这使得开发者更容易管理应用程序,用户也更容易导航。Streamlit 提供了一种无缝的方式来创建多页面应用程序。

我们设计了这个功能,使得构建多页面应用就像构建单页面应用一样简单!只需按照以下方式向现有应用添加更多页面:

  1. 在包含您的主脚本的文件夹中,创建一个新的pages文件夹。假设您的主脚本名为main_page.py
  2. pages文件夹中添加新的.py文件,以向您的应用程序添加更多页面。
  3. 像往常一样运行 streamlit run main_page.py

就是这样!main_page.py 脚本现在将对应于你的应用程序的主页。你将在侧边栏页面选择器中看到来自 pages 文件夹的其他脚本。页面根据文件名列出(不包括文件扩展名并忽略下划线)。例如:

main_page.py
import streamlit as st st.markdown("# Main page 🎈") st.sidebar.markdown("# Main page 🎈")
pages/page_2.py
import streamlit as st st.markdown("# Page 2 ❄️") st.sidebar.markdown("# Page 2 ❄️")
pages/page_3.py
import streamlit as st st.markdown("# Page 3 🎉") st.sidebar.markdown("# Page 3 🎉")

现在运行 streamlit run main_page.py 并查看您闪亮的新多页面应用程序!

我们的文档多页面应用教你如何向你的应用添加页面,包括如何定义页面、构建和运行多页面应用,以及在页面之间导航。一旦你掌握了基础知识,创建你的第一个多页面应用

如果你在Streamlit库中找不到合适的组件,可以尝试使用自定义组件来扩展Streamlit的内置功能。在组件库中探索和浏览流行的、社区创建的组件。如果你涉足前端开发,可以使用Streamlit的组件API构建自己的自定义组件。

正如你在Streamlit基础中所学到的,Streamlit运行一个服务器,客户端连接到该服务器。这意味着你的应用程序的查看者无法直接访问应用程序本地的文件。大多数情况下,这并不重要,因为Streamlit命令会为你处理这些。当你使用st.image()时,你的Streamlit服务器将访问该文件并处理必要的托管,以便你的应用程序查看者可以看到它。然而,如果你想要一个直接指向图像或文件的URL,你需要托管它。这需要设置正确的配置,并将你托管的文件放在一个名为static的目录中。例如,你的项目可能如下所示:

your-project/ ├── static/ │ └── my_hosted-image.png └── streamlit_app.py

要了解更多信息,请阅读我们的指南Static file serving

良好的开发习惯包括测试你的代码。自动化测试可以让你更快地编写更高质量的代码!Streamlit 有一个内置的测试框架,让你可以轻松构建测试。使用你最喜欢的测试框架来运行你的测试。我们喜欢 pytest。当你测试一个 Streamlit 应用时,你可以模拟运行应用,声明用户输入,并检查结果。你可以使用 GitHub 工作流来自动化你的测试,并在出现破坏性更改时立即收到警报。在我们的 应用测试 指南中了解更多。

forum

还有问题吗?

我们的 论坛 充满了有用的信息和Streamlit专家。