怎么使用Pythonstreamlit实现轻松创建人事系统
更新时间:2023-10-17
段落一:介绍Python和Streamlit
Python是一种高级编程语言,具有简单易学、优雅简洁、易读易写等特点。它支持多种程序范式,包括面向对象、命令式、函数式和过程式。Python拥有强大而丰富的标准库和第三方模块,可以轻松实现各种各样的应用。
Streamlit是一个Python库,它可以轻松创建和发布Web应用程序。使用Streamlit,可以快速搭建数据科学和机器学习Web应用程序,而无需任何Web开发经验。Streamlit提供了GUI组件,如文本框、下拉框、选项卡等,可以帮助用户快速搭建交互式UI。
import streamlit as st st.title('Hello, World!') st.write('This is a simple Streamlit app.')以上代码创建了一个简单的Streamlit程序,在页面上显示标题和一些文本。 段落二:创建人事系统的过程 首先,需要创建一个包含员工信息的数据表,可以使用最流行的关系型数据库MySQL或PostgreSQL,以及Python中的SQLAlchemy库来进行数据操作。下面是一个简单的创建SQLAlchemy表的示例:
from sqlalchemy import Column, String, Integer, Date, create_engine, MetaData, Table engine = create_engine('postgresql://user:password@localhost:5432/mydatabase') metadata = MetaData(bind=engine) employees_table = Table( 'employees', metadata, Column('id', Integer, primary_key=True), Column('name', String(50)), Column('email', String(50)), Column('age', Integer), Column('salary', Integer), Column('hire_date', Date) )接下来,可以使用Streamlit创建一个页面,显示员工信息表。可以使用Streamlit提供的组件,如表格和下拉框等,来方便地展示数据和进行筛选。
import pandas as pd @st.cache def get_employees(): # fetch employee data from database data = pd.read_sql('SELECT * FROM employees', engine) return data employees = get_employees() st.write('## Employee Information') st.write('### Filter Employees') criteria = st.selectbox('Select a filter', ['All', 'Age', 'Salary']) st.write(f'Selected filter: {criteria}') if criteria == 'Age': min_age = st.slider('Minimum age', 18, 60, 25, 1) max_age = st.slider('Maximum age', min_age, 60, 40, 1) employees = employees[(employees['age'] >= min_age) & (employees['age'] <= max_age)] elif criteria == 'Salary': min_salary = st.slider('Minimum salary', 100000, 1000000, 500000, 10000) max_salary = st.slider('Maximum salary', min_salary, 1000000, 800000, 10000) employees = employees[(employees['salary'] >= min_salary) & (employees['salary'] <= max_salary)] st.write(employees)以上代码创建了一个具有筛选功能的员工信息页面。使用下拉框选择筛选条件,并使用滑块设置筛选条件的值。接着,展示过滤后的员工信息表。 段落三:编写人事系统的功能模块 在人事系统中,需要实现一些功能模块,例如添加员工、删除员工、编辑员工信息等。这些功能可以通过Streamlit提供的组件进行实现。以下是一个添加员工的示例:
@st.cache def add_employee(name, email, age, salary, hire_date): conn = engine.connect() result = conn.execute(employees_table.insert().values( name=name, email=email, age=age, salary=salary, hire_date=hire_date)) st.success(f'Employee {name} added with ID {result.inserted_primary_key}') st.write('## Add Employee') name = st.text_input('Name') email = st.text_input('Email') age = st.number_input('Age', min_value=18, max_value=60) salary = st.number_input('Salary', min_value=100000, max_value=1000000) hire_date = st.date_input('Hire date') if st.button('Add Employee'): add_employee(name, email, age, salary, hire_date)以上代码创建了一个添加员工的页面。使用文本框输入员工信息,并使用按钮提交表单。在提交表单后,使用SQLAlchemy将员工信息添加到员工信息表中,并返回成功提示。 段落四:总结 使用Python和Streamlit,轻松创建人事系统可以极大的简化开发流程,减少开发周期,提高Web应用程序的开发效率。此外,Streamlit提供了Web应用程序开发所需的所有组件和界面的布局,减少了对HTML、CSS和JavaScript的依赖。在开发过程中,可以使用SQLAlchemy等Python库方便地操作数据库,实现分页、过滤等功能。