c语言编程笔录

首页 >   > 笔记大全

笔记大全

怎么使用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库方便地操作数据库,实现分页、过滤等功能。