毕业论文信息管理系统:使用 Streamlit 和 FastAPI 实现一键式部署
要实现毕业论文信息管理系统,你可以按照以下步骤进行操作:
- 安装所需的软件库: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/clr0 著作权归作者所有。请勿转载和采集!