上图表示出来streamlit库的优点,它可以让我们不用前端代码,全程只是在pycharm中,创建出便捷简单的web界面。
import streamlit as st
st.title('智能充电系统')
st.write()
user_input=st.text_input('请输入充电账号')
if user_input:
st.write(f'您好, {user_input}!')
if st.button('点击我'):
st.write('请继续执行操作')
time=st.slider('请选择充电时长: ',0,1440,25)
st.write(f'你的充电时长是{time}分钟')
if st.checkbox('显示数据'):
st.write('这里可以显示数据')
option=st.selectbox('选择一个选项:',['即刻充电','预约充电'])
st.write(f"你选择了{option}")
options=st.multiselect('选择充电桩: ',['1号','2号','3号','4号','5号'])
st.write(f'你选择了{options}')
power_option = st.selectbox('选择充电桩功率等级:', ['低功率', '中功率', '高功率'])
power_rates = {
'低功率': 0.05, # 每分钟收费
'中功率': 0.1, # 每分钟收费
'高功率': 0.2 # 每分钟收费
}
rate = power_rates[power_option]
st.write(f'你选择了 {power_option},每分钟收费 {rate} 元')
# 计算费用
cost = time * rate
st.write(f'预计充电费用为: {cost:.2f} 元')
# 按钮以确认并显示总费用
if st.button('确认支付'):
st.write('支付成功')
import pandas as pd
import numpy as np
data=pd.DataFrame({
'x':np.random.randn(100),
'y':np.random.randn(100)
})
st.line_chart(data)
map_data=pd.DataFrame(
np.random(1000,2)/[50,50]+[37.7,-122.41],
columns=['lat','lon']
)
读者可以看到,我并没有编写任何的前端代码,只是依靠这个streamlit库生成的web界面。首先我们让用户输入用户名,输入之后立即返回您好+用户名,生成一个滑栏,范围是从0到1440,打开网页时固定到25,并下面实时显示你选择的充电时长,下面有一个显示数据的按钮,勾选之后显示这里可以显示数据。这一步可以根据读者自身的需要加入事件监听器,丰富前端web网页功能。下面代码都是定义选择,供用户选择,根据选择功率高低不同实行阶段性收费。最后展示用户选择的充电桩功率等级,每分钟收费,最后计算总费用。
怎么在terminal中启动streamlit?
例如:我将这个python文件命名为charger,则在terminal中输入 run streamlit charger.py
terminal会生成一个网址,你能在web浏览器中打开。