Streamlit是一个Python
的界面库,但是制作的界面是网页形式的。并且很方便地集成了许多功能,如热重载、可视化等。
简单使用
首先最简单创建一个滑动条并且实时展示滑动条数据。
当运行的时候,要用这样子的命令
streamlit run xxx.py
import streamlit as st
x = st.slider('Select a value')
st.write(x, 'squared is', x * x)
也可以展示一些数据
import streamlit as st
import pandas as pd
st.write("Here's our first attempt at using data to create a table:")
st.write(pd.DataFrame({
'first column': [1, 2, 3, 4],
'second column': [10, 20, 30, 40]
}))
这里st.write
是一个神奇的方法,它能展示几乎一切的数据。
单独一行写一个变量,也会自动用st.write
来渲染。
状态管理
当你用button
时候会遇到问题
count = 0
def plus():
global count
count += 1
st.button('BTN', on_click=plus)
st.write(count)
这样子的代码并不会让每按一次按钮,count 加一。这是因为回调函数on_click
会自动刷新整个页面。
所以需要用状态来保存当前的变量,下面是一个例子。
st.title('Counter Example using Callbacks')
if 'count' not in st.session_state:// 声明状态变量
st.session_state.count = 0
def increment_counter():
st.session_state.count += 1
st.button('Increment', on_click=increment_counter)
st.write('Count = ', st.session_state.count)
这里感觉有点像vue
里面的数据驱动。