通过streamlit实现毕业设计课题的管理系统内容包含对数据的增删改查(给出详细的操作代码)
时间: 2024-11-10 16:25:13 浏览: 16
在Streamlit中实现一个简单的毕业设计课题管理系统,你可以按照以下步骤构建基本的数据操作功能,比如创建、读取、更新和删除(CRUD):
首先,安装必要的库:
```bash
pip install streamlit pandas
```
然后创建一个`main.py`文件,引入所需模块并开始编写代码:
```python
import streamlit as st
import pandas as pd
# 初始化数据(假设是一个空DataFrame)
data = pd.DataFrame()
# 数据表标题
st.title("毕业设计课题管理系统")
# 添加功能按钮
def handle_action(action, value=None):
if action == "新增":
# 获取用户输入的新课题信息
name = st.text_input("课题名称")
description = st.text_area("课题描述")
data = add_new_topic(name, description, data)
elif action == "查看":
# 显示当前所有课题
show_topics(data)
elif action == "编辑":
# 编辑指定课题
selected_topic_id = st.selectbox("选择要编辑的课题", range(len(data)))
edited_topic = edit_topic(selected_topic_id, data)
update_data(edited_topic, data)
elif action == "删除":
# 删除选定课题
delete_topic = st.button("删除课题")
if delete_topic:
delete_topic_id = st.selectbox("确认删除", range(len(data)))
data = remove_topic(delete_topic_id, data)
# 添加操作方法
def add_new_topic(name, description, df):
df = df.append({'Name': name, 'Description': description}, ignore_index=True)
return df
def show_topics(df):
st.write(df)
def edit_topic(id, df):
name = st.text_input(f"课题 {id} 的名称", df.iloc[id]['Name'])
description = st.text_area(f"课题 {id} 的描述", df.iloc[id]['Description'])
return {'Name': name, 'Description': description}
def update_data(updated_topic, df):
index = df.index[df.Name == updated_topic['Name']].tolist()[0]
df.loc[index] = updated_topic
df.to_csv("topics.csv") # 保存到本地文件
# 主循环
while True:
operation = st.selectbox("请选择操作", ["新增", "查看", "编辑", "删除"])
value = None
if operation != "查看":
value = handle_action(operation)
if operation == "退出":
break
# 在程序结束时保存数据
if data.empty:
pass # 如果数据为空,则不需要保存
else:
data.to_csv("topics.csv", index=False)
```
在这个例子中,我们使用了`streamlit`展示选项卡式的界面,并利用`pandas`来管理课题数据。用户可以选择“新增”、“查看”、“编辑”或“删除”课题,系统会根据用户的选择执行相应的操作。
请注意,这只是一个基础示例,实际应用可能需要连接数据库或API进行持久化存储和交互。同时,为了保证数据安全,在生产环境中应避免直接将敏感信息如CSV文件路径暴露给用户。
阅读全文