在 Streamlit 庫中,可以使用 st.sidebar 創建側邊欄,其中可以包含各種菜單選項。在選擇菜單選項后,可以使用 st.write 和 st.dataframe 顯示文本和數據表格。
streamlit 是 基于 Python 的一個非常強大的 web 構建系統,通過該類庫,我們可以實現不需要編寫一行前端代碼而構建一個完整的 Web 應用。
下面我們就來編寫一個簡單的人事系統吧
系統簡介
這個簡單的人事系統包含了添加員工和顯示員工列表兩個功能。在 Streamlit 庫中,可以使用 st.sidebar 創建側邊欄,其中可以包含各種菜單選項。在選擇菜單選項后,可以使用 st.write 和 st.dataframe 顯示文本和數據表格。此外,可以使用 st.text_input 和 st.number_input 創建輸入框,讓用戶輸入員工信息,并使用 st.button 創建按鈕來觸發添加員工操作。最后,在程序主函數中調用以上各個函數即可。
代碼詳情
我們先導入相關依賴,并創建員工類
import streamlit as st
import pandas as pd
# 創建員工類
class Employee:
def __init__(self, name, age, position):
self.name = name
self.age = age
self.position = position
接下來我們編寫員工函數,導入員工數據
# 創建員工列表
employee_list = []
# 添加員工函數
def add_employee(name, age, position):
employee = Employee(name, age, position)
employee_list.append(employee)
# 顯示員工列表函數
def show_employee_list():
if len(employee_list) == 0:
st.write('員工列表為空!')
else:
df = pd.DataFrame([[e.name, e.age, e.position] for e in employee_list], columns=['姓名', '年齡', '職位'])
st.dataframe(df)
最后就是添加頁面部分以及主程序
# 添加員工界面
def add_employee_page():
st.write('添加新員工')
name = st.text_input('姓名')
age = st.number_input('年齡', min_value=0, max_value=100)
position = st.text_input('職位')
if st.button('添加'):
add_employee(name, age, position)
st.success('添加成功!')
# 顯示員工列表界面
def show_employee_list_page():
st.write('員工列表')
show_employee_list()
# 主程序
def main():
st.title('人事系統')
menu = ['添加員工', '員工列表']
choice = st.sidebar.selectbox('選擇菜單', menu)
if choice == '添加員工':
add_employee_page()
elif choice == '員工列表':
show_employee_list_page()
完整代碼
import streamlit as st
import pandas as pd
# 創建員工類
class Employee:
def __init__(self, name, age, position):
self.name = name
self.age = age
self.position = position
# 創建員工列表
employee_list = []
# 添加員工函數
def add_employee(name, age, position):
employee = Employee(name, age, position)
employee_list.append(employee)
# 顯示員工列表函數
def show_employee_list():
if len(employee_list) == 0:
st.write('員工列表為空!')
else:
df = pd.DataFrame([[e.name, e.age, e.position] for e in employee_list], columns=['姓名', '年齡', '職位'])
st.dataframe(df)
# 添加員工界面
def add_employee_page():
st.write('添加新員工')
name = st.text_input('姓名')
age = st.number_input('年齡', min_value=0, max_value=100)
position = st.text_input('職位')
if st.button('添加'):
add_employee(name, age, position)
st.success('添加成功!')
# 顯示員工列表界面
def show_employee_list_page():
st.write('員工列表')
show_employee_list()
# 主程序
def main():
st.title('人事系統')
menu = ['添加員工', '員工列表']
choice = st.sidebar.selectbox('選擇菜單', menu)
if choice == '添加員工':
add_employee_page()
elif choice == '員工列表':
show_employee_list_page()
if __name__ == '__main__':
main()