Skip to main content

Streamlit库的简单入门

· 2 min read

Streamlit是一个Python的界面库,但是制作的界面是网页形式的。并且很方便地集成了许多功能,如热重载、可视化等。

image-20220113213402491

简单使用

首先最简单创建一个滑动条并且实时展示滑动条数据。

当运行的时候,要用这样子的命令

streamlit run xxx.py
import streamlit as st

x = st.slider('Select a value')
st.write(x, 'squared is', x * x)

simple_example

也可以展示一些数据

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来渲染。

image-20220113213716987

状态管理

当你用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里面的数据驱动。