Streamlit,一个超强的 Python 应用开发库!
大家好,我是“一行”。今天,我们要来聊一个非常酷的Python库——Streamlit。如果你有过构建Web应用的经验,或者你对快速搭建交互式应用感兴趣,那么Streamlit会是一个非常棒的工具。它可以让你用极少的代码,快速创建出功能强大且美观的Web应用。无论你是数据分析师、机器学习工程师,还是Python初学者,Streamlit都能帮你轻松实现数据可视化、模型展示等功能。
今天我们就从基础开始,带你一探究竟如何使用Streamlit来开发一个应用!
什么是Streamlit?
Streamlit 是一个开源Python库,用来快速创建Web应用,特别适合数据科学、机器学习和人工智能领域的开发者。它的最大特点就是极简的代码结构和快速的开发速度。你只需要用Python写几行代码,就能搭建起一个可以交互、展示数据的Web应用。
和传统的Web框架(如Flask、Django)相比,Streamlit的上手难度更低,不需要写复杂的HTML、CSS或JavaScript,只需要专注于Python代码。
安装Streamlit
首先,我们要安装Streamlit。在终端或命令行中运行以下命令:
pip install streamlit
安装完毕后,检查是否成功安装,可以通过以下命令查看Streamlit版本:
streamlit --version
如果一切正常,接下来就可以开始创建你的第一个Streamlit应用啦!
Streamlit基础:展示文本和数据
1. 显示文本
让我们从最简单的开始,展示一些文本。使用Streamlit,你可以轻松地在Web页面上显示文本、标题、Markdown等。
import streamlit as st
# 显示标题
st.title("欢迎来到Streamlit应用!")
# 显示文本
st.write("这是我用Streamlit做的第一个Web应用。")
执行上面的代码后,Streamlit会启动一个本地Web服务器,并在浏览器中打开应用,页面上会显示一个标题和一段文本。
小贴士:Streamlit的st.write()
方法不仅支持显示普通文本,还支持各种数据类型的展示,例如pandas DataFrame、Matplotlib图表等。
2. 展示数据
假设你有一些数据(例如一个DataFrame),你可以用Streamlit直接展示它。让我们来看一个简单的示例,展示一个包含数字数据的表格:
import pandas as pd
import streamlit as st
# 创建一个简单的DataFrame
data = {'姓名': ['张三', '李四', '王五'],
'年龄': [25, 30, 22],
'职业': ['工程师', '医生', '学生']}
df = pd.DataFrame(data)
# 显示DataFrame
st.write("人员信息表:")
st.dataframe(df)
当你运行这段代码时,Streamlit会自动生成一个可滚动的表格,展示出DataFrame中的内容。
Streamlit高级功能:交互式元素
Streamlit不仅能展示数据,还能实现交互功能。这使得用户可以与应用进行互动,输入数据、选择选项、调整参数等。接下来,我们来看看如何使用Streamlit的交互功能。
1. 按钮和输入框
你可以在应用中添加按钮、文本输入框等交互元素,让用户通过这些控件与应用进行交互。下面的例子展示了如何用按钮来控制事件:
import streamlit as st
# 显示一个按钮
if st.button('点击我'):
st.write('按钮被点击了!')
else:
st.write('请点击按钮!')
运行代码后,你会看到一个按钮,点击后会在页面上显示对应的信息。
2. 滑块和选择框
滑块是Streamlit中非常实用的交互控件,特别适合用来调整参数、选择数值范围等。下面的代码展示了如何用滑块来选择一个范围的数值:
import streamlit as st
# 创建一个滑块
age = st.slider("请选择年龄", min_value=18, max_value=100, value=25)
# 显示选择的年龄
st.write(f"你选择的年龄是:{age}")
这个滑块允许用户选择一个年龄,选择后页面会实时显示选择的年龄。
小贴士:Streamlit的交互式控件(如st.slider()
、st.selectbox()
等)会自动根据用户的输入更新页面,非常适合用来做数据分析或者模型调参等任务。
可视化:Streamlit与Matplotlib结合
Streamlit与Matplotlib等可视化库结合非常方便,可以帮助我们创建交互式图表。下面我们用Matplotlib创建一个简单的折线图并通过Streamlit展示:
import streamlit as st
import matplotlib.pyplot as plt
import numpy as np
# 数据准备
x = np.linspace(0, 10, 100)
y = np.sin(x)
# 创建图形
fig, ax = plt.subplots()
ax.plot(x, y)
# 显示图形
st.pyplot(fig)
在浏览器中打开这个应用时,你将看到一个显示正弦波的折线图。通过Streamlit的st.pyplot()
方法,我们将Matplotlib生成的图形嵌入到Web应用中。
Streamlit的实时更新功能
Streamlit非常强大的一点是它能实时更新页面内容。你可以在应用中实时查看用户输入的结果。例如,你可以创建一个根据用户输入内容动态更新的图表:
import streamlit as st
import numpy as np
import matplotlib.pyplot as plt
# 用户输入
freq = st.slider('选择正弦波频率', 1, 10, 1)
# 生成数据
x = np.linspace(0, 10, 100)
y = np.sin(freq * x)
# 绘制图形
fig, ax = plt.subplots()
ax.plot(x, y)
# 显示图形
st.pyplot(fig)
这个应用展示了一个动态更新的正弦波图形,用户可以通过滑块调整频率,图形会根据选择实时更新。
小贴士:Streamlit的这种“自动更新”特性,让我们在开发过程中省去了很多麻烦,只要用户操作,页面内容就会立刻改变,提升了用户体验。
如何运行Streamlit应用
你可以通过命令行来启动Streamlit应用。假设你已经将应用代码保存在 app.py
文件中,运行以下命令即可启动:
streamlit run app.py
之后,Streamlit会自动启动一个本地Web服务器,并给出一个URL,通常是 http://localhost:8501
,你可以在浏览器中打开查看你的应用。
结语
今天我们介绍了Streamlit的基础知识,包括如何安装、使用Streamlit展示文本和数据,如何添加交互式元素,以及如何用Matplotlib进行数据可视化。Streamlit的简洁性和强大功能,让它成为了Python开发者的利器,尤其适合数据科学和机器学习的快速原型开发。
记得多动手敲代码! 如果你有任何想法,可以尝试将自己感兴趣的数据或应用功能实现出来,Streamlit将大大简化你的开发过程。
今天的Python学习之旅就到这里啦!祝大家学习愉快,Python学习节节高!
作者:一行玩python