Streamlit中文开发手册:快速构建交互式Web应用的利器

作者:很菜不狗2024.08.14 03:58浏览量:30

简介:本文详细介绍了Streamlit这一开源Python库,帮助数据科学家和开发者快速构建美观且交互式的Web应用。通过简明扼要的步骤和实例,展示了Streamlit的安装、配置、数据展示、交互功能及高级应用技巧。

Streamlit中文开发手册(详细版)

引言

Streamlit是一个开源的Python库,它极大地简化了数据科学家和开发者创建和分享交互式Web应用的过程。无需深入前端开发经验,Streamlit允许用户通过简单的Python脚本快速构建美观且功能强大的Web应用。本文将详细介绍Streamlit的安装、配置、基本用法以及高级功能,帮助读者快速上手。

一、安装与配置

安装Streamlit

Streamlit的安装非常简单,只需使用pip包管理器即可。在终端或命令提示符中运行以下命令:

  1. pip install streamlit

这条命令会从Python包索引下载并安装Streamlit及其依赖项。

配置文件

在某些情况下,你可能需要配置Streamlit。配置文件的位置在~/.streamlit/config.toml(Windows系统中为C:\Users\Administrator\.streamlit)。如果没有这个文件,你可以自己创建一个。以下是一个config.toml的示例:

  1. [server]
  2. port = 8501
  3. enableCORS = false
  4. serverAddress = "localhost"
  5. gatherUsageStats = false
  • port: Streamlit应用的端口号,默认为8501。
  • enableCORS: 是否启用跨域资源共享,默认为false。
  • serverAddress: Streamlit服务器的地址,默认为”localhost”。
  • gatherUsageStats: 是否允许Streamlit收集使用统计信息,默认为true,但一般推荐禁用。

运行Streamlit应用

要运行Streamlit应用,只需在终端或命令提示符中运行以下命令,并替换your_app.py为你的Python脚本文件名:

  1. streamlit run your_app.py

运行上述命令后,Streamlit将启动服务器,并在默认Web浏览器中自动打开应用。

二、Streamlit基础用法

显示数据

Streamlit提供了多种函数来显示数据,包括文本、标题、代码、表格、图像等。

  • 标题:使用st.title(), st.header(), st.subheader()来创建不同层级的标题。
  • 文本:使用st.text()显示纯文本,st.markdown()支持Markdown格式的文本。
  • 代码:使用st.code()显示代码段,并可选择代码语言进行语法高亮。
  • 表格:直接传入pandas的DataFrame对象即可显示表格。
  • 图像:使用st.image()显示图像文件。

交互功能

Streamlit提供了丰富的交互控件,如按钮、复选框、单选框、滑动条等,允许用户与应用进行互动。

  • 按钮:使用st.button()创建一个按钮,并通过回调函数处理点击事件。
  • 复选框:使用st.checkbox()创建一个复选框,用户可以选择是否勾选。
  • 单选框:使用st.radio()创建一组单选框,用户只能选择一个选项。
  • 滑动条:使用st.slider()创建一个滑动条,用户可以拖动滑块选择数值。

三、高级功能

数据缓存

Streamlit的数据缓存机制允许应用记住特定函数的结果,避免重复计算。使用@st.cache装饰器可以标记任何函数,使其输出被缓存。

  1. import pandas as pd
  2. import streamlit as st
  3. @st.cache
  4. def load_data(filename):
  5. data = pd.read_csv(filename)
  6. return data
  7. data = load_data('my_dataset.csv')
  8. st.write(data)

布局管理

Streamlit支持灵活的布局管理,包括列布局、侧边栏布局等。使用st.columns()可以创建多列布局,使用st.sidebar可以在侧边栏中显示内容。

```python
import streamlit as st

col1, col2 = st.columns(2)
col1.write(‘Column 1’)
col2.write(‘Column 2’)

st.sidebar.write(‘This is in the

article bottom image

相关文章推荐

发表评论