From: https://mp.weixin.qq.com/s/x2dJshrAdev4FweK4kwCyA
-----------------------------------------------------------------------------------
介绍
Streamlit是一款非常强大,可以实现快速创建和共享数据应用的Python库。借助他,我们可以在数分钟内构建出功能齐全的Web应用程序
相较而言,它比django、flask、pelican等建站工具来得快。比如我们只想要展示些简单的东西,如:收集一些歌曲,展示一些图片等
优点
-
交互性:Streamlit的设计理念是以数据科学家和工程师为中心,它提供了构建交互性数据应用程序的框架。相反,Pelican和Vuepress更多的是静态网站生成器,它们更专注于内容呈现,而不是用户交互。
-
编程语言:Streamlit是使用Python编写的,让你可以用Python编写前端
-
即时刷新:Streamlit提供了即时刷新功能,这意味着每当输入数据发生变化时,相关的结果会立即更新。
-
易用性:Streamlit操作简单,代码结构清晰,且具有许多内置的功能,如表格、图形和映射,让用户能够无需许多前端知识就能构建复杂的数据应用程序。
-
定制性:Streamlit 的组件机制可以自定义UI的显示,既可以使用内置的一些组件比如按钮、输入框、表格等等,也可以使用自定义的React组件,更加的灵活自由。
安装
pip install streamlit
创建项目
Streamlit的Hello World
在安装完成后,我们可以创建一个简单的Streamlit网页应用,仅需几行代码就可以呈现出一段文本。
import streamlit as st
st.title('Hello World')
运行
只需运行 `streamlit run [你的Python脚本名字].py`命令,即可打开一个新的浏览器窗口显示出我们编写的"Hello World"标题。(注:第一次运行,需要输入一个电子邮箱)
效果
以上一个简单的网站就搭建好了!!!
交互性
Streamlit的一个核心特性就是可以快速添加交互式功能。包括按钮、选框、滑块等等。同样,我们只需几行代码就可以创建一个带有滑动条的应用
代码示例
import streamlit as st
st.title('Hello World')
x = st.slider('请选择一个值')
st.write(x, '该值的平方是:', x * x)
输出结果
在这个应用中,滑动条可以让用户选择一个值,而应用则会显示这个值的平方。
数据的展示
Streamlit可以特别方便地展现和处理数据。比如,我们可以轻易地导入pandas库来处理数据并以表格形式展示
代码示例
import streamlit as st
import pandas as pd
st.title('Hello World')
x = st.slider('请选择一个值')
st.write(x, '该值的平方是:', x * x)
data = pd.DataFrame({
'Name': ['张三', '李四', '王五'],
'Age': [20, 21, 19]
})
st.write(data)
输出结果
运行上述代码,我们就会在网页上看到多出一个清晰的数据表格!!!
缓存
如果你的Web应用需要处理大规模数据或进行复杂运算,那么Streamlit的@st.cache_data装饰器会是一个好帮手。加了它,函数的运算结果会被缓存,直到检测到输入值变化,才会重新运算。有了它,我们就不用每次刷新页面,都要等待耗时运算了。
代码示例
import pandas as pd
import time
st.title('Hello World')
def cal(n):
time.sleep(3)
return pd.DataFrame({
'Number': list(range(n)),
})
n = st.slider('请选择一个数值:', 0, 10)
st.write(cal(n))
输出结果
总结:简单、快速、易用,这就是Streamlit !!!