通过streamlit和fastapi实现一个毕业论文信息管理系统在页面可以添加毕业论文信息添加操作在后端FastAPI中实现在页面可以查询个人论文信息也可以按班级查询所有人的论文信息同时也可以对个人论文信息做出修改和删除对于tianjia删除修改的数据同步到数据库当中把该系统进行容器化部署通过docker-compose实现一键启停
要实现毕业论文信息管理系统,你可以按照以下步骤进行操作:
- 安装所需的软件库:streamlit、fastapi、docker和docker-compose。
- 创建一个FastAPI应用程序,用于处理后端逻辑。在应用程序中,你需要定义用于添加、查询、修改和删除论文信息的API端点。
- 创建一个数据库,用于存储论文信息。你可以使用SQLite或其他关系型数据库,如MySQL或PostgreSQL。
- 创建一个Streamlit应用程序,用于呈现前端界面。在应用程序中,你可以使用表单和按钮来添加、查询、修改和删除论文信息,并将这些操作发送到FastAPI后端进行处理。
- 使用docker-compose创建一个容器化部署环境。在docker-compose文件中,你需要定义FastAPI和Streamlit的容器,并配置它们的依赖关系和端口映射。
- 使用docker-compose启动容器化应用程序。
以下是一个简单的示例代码,演示了如何使用Streamlit和FastAPI创建一个毕业论文信息管理系统:
# backend.py
from fastapi import FastAPI
app = FastAPI()
database = []
@app.get("/papers")
def get_papers():
return database
@app.post("/papers")
def add_paper(paper):
database.append(paper)
return {"message": "Paper added successfully"}
@app.put("/papers/{paper_id}")
def update_paper(paper_id, updated_paper):
database[paper_id] = updated_paper
return {"message": "Paper updated successfully"}
@app.delete("/papers/{paper_id}")
def delete_paper(paper_id):
del database[paper_id]
return {"message": "Paper deleted successfully"}
# frontend.py
import streamlit as st
import requests
BACKEND_URL = "http://localhost:8000"
def get_papers():
response = requests.get(f"{BACKEND_URL}/papers")
return response.json()
def add_paper(paper):
response = requests.post(f"{BACKEND_URL}/papers", json=paper)
return response.json()
def update_paper(paper_id, updated_paper):
response = requests.put(f"{BACKEND_URL}/papers/{paper_id}", json=updated_paper)
return response.json()
def delete_paper(paper_id):
response = requests.delete(f"{BACKEND_URL}/papers/{paper_id}")
return response.json()
def main():
st.title("毕业论文信息管理系统")
# 添加论文
st.subheader("添加论文")
paper_title = st.text_input("论文标题")
paper_author = st.text_input("论文作者")
if st.button("添加"):
paper = {"title": paper_title, "author": paper_author}
add_paper(paper)
st.success("论文添加成功")
# 查询论文
st.subheader("查询论文")
all_papers = get_papers()
for paper in all_papers:
st.write(f"标题:{paper['title']}, 作者:{paper['author']}")
# 修改论文
st.subheader("修改论文")
paper_id = st.text_input("要修改的论文ID")
updated_title = st.text_input("修改后的标题")
updated_author = st.text_input("修改后的作者")
if st.button("修改"):
updated_paper = {"title": updated_title, "author": updated_author}
update_paper(paper_id, updated_paper)
st.success("论文修改成功")
# 删除论文
st.subheader("删除论文")
delete_id = st.text_input("要删除的论文ID")
if st.button("删除"):
delete_paper(delete_id)
st.success("论文删除成功")
if __name__ == "__main__":
main()
# docker-compose.yml
version: '3'
services:
backend:
build: .
ports:
- "8000:8000"
frontend:
build: .
ports:
- "8501:8501"
depends_on:
- backend
你可以将上述代码保存到相应的文件中(backend.py、frontend.py、docker-compose.yml),然后在终端中使用以下命令来启动应用程序:
docker-compose up
这将启动FastAPI后端和Streamlit前端,并将它们绑定到相应的端口(8000和8501)。然后,你可以在浏览器中访问http://localhost:8501来使用毕业论文信息管理系统。
请注意,上述代码只是一个示例,你可能需要根据自己的需求进行修改和扩展。同时,还需要确保你的数据库配置正确,并根据需要进行相应的数据验证和错误处理。
原文地址: https://www.cveoy.top/t/topic/jgCY 著作权归作者所有。请勿转载和采集!