首页 > 其他分享 >CEMS大学生综合测评管理系统

CEMS大学生综合测评管理系统

时间:2023-09-10 15:34:43浏览次数:52  
标签:file 管理系统 os app 测评 CEMS https path com

功能介绍

登录

首页

修改密码

提交申请

提交列表

数据可视化

审核列表

前端

components结构

搭建Vue项目

​ Vue3快速上手:

https://cn.vuejs.org/guide/quick-start.html#creating-a-vue-application

页面布局

<template>
  <el-container >
    <el-header>
      <HomeHeader/>
    </el-header>
    <el-container>
      <el-aside width="250px">
        <HomeAside/>
      </el-aside>
      <el-main>
        <router-view></router-view>
      </el-main>
    </el-container>
  </el-container>
</template>

<script>
import HomeAside from './HomeAside.vue';
import HomeHeader from './HomeHeader.vue';

export default {
  components: {
    HomeAside,
    HomeHeader
  }
}
</script>

<style>
.el-header{
  background-color: #B3C0D1;
  color: #333;
  text-align: center;
  line-height: 60px;
}
.el-aside {
  background-color: #E9EEF3;
  color: #333;
  text-align: center;
  line-height: 160px;
}
html,body,#app,.demo,.el-container {
  height: 100%;
  width: 100%;
}
</style>

组件通信

​ js-cookie的使用:

https://blog.csdn.net/weixin_52615140/article/details/128543259

Echarts

​ 在vue中使用echarts:

https://www.bilibili.com/video/BV16Z4y1U7BW

​ Vue-ECharts:

https://github.com/ecomfe/vue-echarts/tree/main

​ 注意:采用created方法进行echarts组件数据的初始化

生命周期应用

https://www.bilibili.com/video/BV1Rs4y127j8/?p=35&vd_source=b53d35d0f1e32279da1e60b030a06429

表格中预览大图

https://blog.csdn.net/weixin_47390965/article/details/127402967

​ 注意:原文章在调用弹框组件时,错误使用了:show.sync="LicenseBigDialog",而应该写成v-model="LicenseBigDialog"

低代码表单

​ Variant Form:

https://vform666.com/

UI 框架

​ Element Plus:

https://element-plus.org/zh-CN/#/zh-CN

  1. 表单进阶(插入图片、获取表单所在行数)

    <template>
      <el-table class="submitList" :data="tableData" stripe border>
        
        <!-- 插入图片 -->
        <el-table-column prop='evidence' label="加分材料" width="130" >
        <template #default="scope">
          <el-image :src="scope.row.evidence" @click="showBigImage(scope.row.evidence)" preview-src-list min-width="70" height="70" />
        </template>
        </el-table-column>
    
        <!-- 获取表单的所在行数 -->
        <el-table-column label="是否通过" width="130" >
          <template #default="scope">
            <button @click="submit(scope.$index)">通过</button>
          </template>
        </el-table-column>
    
      </el-table>
    </template>
    

网络请求

​ axios在vue中的使用:

https://blog.csdn.net/m0_67403188/article/details/123420220

后端

接口实例

​ 这里以登录接口为例,介绍了怎么创建一个接口。

class LoginClass(BaseModel):
    id: str
    password: str


@app.post("/login")
async def login(lc: LoginClass):
    conn = pymysql.connect(host='localhost', port=3306, user='root', password='123456',
                           db='student_evaluation_and_management_system', charset='utf8')
    # 创建游标对象
    cursor = conn.cursor()
    cursor.execute("select * from admin where id = %s and password = %s", (lc.id, lc.password))
    conn.commit()
    results = cursor.fetchall()
    if len(results) != 0:
        return {"code": "003", "id": results[0][0], "msg": "登陆成功"}
    cursor.execute("select * from student where id = %s and password = %s", (lc.id, lc.password))
    conn.commit()
    results = cursor.fetchall()
    # 关闭游标对象
    cursor.close()
    # 关闭连接
    conn.close()
    if len(results) != 0:
        return {"code": "001", "id": results[0][0], "msg": "登陆成功"}
    else:
        return {"code": "002", "msg": "账号密码错误"}

接口结构

保存与读取图片

# 生成随机文件名
def generate_random_string(length):
    letters = string.ascii_lowercase
    return ''.join(random.choice(letters) for _ in range(length))

# 上传图片时,把照片保存在本地
@app.post("/imgs/upload")
def upload_image(file: UploadFile = File(...)):
    # 获取当前文件所在的目录路径
    current_dir = os.path.dirname(os.path.abspath(__file__))
    # 构建目标文件夹路径
    target_folder = os.path.join(current_dir, "img")
    # 确保目标文件夹存在
    os.makedirs(target_folder, exist_ok=True)
    # 生成随机字符串作为文件名
    file_name = generate_random_string(8)
    # 获取文件的扩展名
    extension = os.path.splitext(file.filename)[1]
    # 构建文件的完整路径
    file_path = os.path.join(target_folder, f"{file_name}{extension}")
    # 保存文件到目标路径
    with open(file_path, "wb") as buffer:
        shutil.copyfileobj(file.file, buffer)
    # 返回文件的名字
    return {"data": {"url": f"{file_name}{extension}"}}

# 从本地读取图片
@app.get('/img')
def get_image(name):
    # 获取与 Python 文件同级的目录路径
    base_dir = os.path.dirname(os.path.realpath(__file__))
    # 构建图片文件路径
    image_path = os.path.join(base_dir, "img", name)
    print(image_path)
    if os.path.exists(image_path):
        # 返回图片作为响应
        return FileResponse(image_path, media_type="image/jpeg")
    else:
        # 如果图片不存在,返回错误信息
        return {"error": "Image not found."}

跨域问题

app = FastAPI()
# 解决跨域问题
app.add_middleware(
    CORSMiddleware,
    allow_origins=["*"],
    allow_methods=["*"],
    allow_headers=["*"],
    allow_credentials=True,
)

部署方法

​ 系统采用腾讯云2核2G轻量云服务器,在宝塔面板的python项目管理直接部署后端项目,提交requiremens.txt和py文件即可。部署时,注意修改后端文件的数据库信息,以及下面的host信息,从“127.0.0.1”修改为“0.0.0.0”。

if __name__ == '__main__':
    uvicorn.run(app='main:app', host='0.0.0.0', port=8000, reload=True)

项目地址

https://github.com/githigher/CEMS

学习链接

标签:file,管理系统,os,app,测评,CEMS,https,path,com
From: https://www.cnblogs.com/ggyt/p/17691318.html

相关文章

  • 基于java的高校社团管理系统设计与开发-计算机毕业设计源码+LW文档
    一、研究的背景意义目前高校大学生的数量越来越多,学生管理越来越复杂。在学习期间,也不能仅仅局限于理论知识,高校领导积极组织各种社团,帮助学生培养兴趣,提高高校文化水平,鼓励和帮助部分老师和优秀学生组建社团。学校社团可以根据某一文化主题或者专业技能进行分类,学生可以选择不同......
  • 基于web的图书馆座位管理系统设计与实现-计算机毕业设计源码+LW文档
    摘要信息化的迅速发展,对人们的衣食住行产生了很大影响。越来越多的人习惯并依赖于通过信息技术和智能化的形式来处理日常各类事物。为了满足学生用户日常学习的需要,以及适应现代化图书馆管理的需求,决定开发基于web的图书馆座位管理系统。帮助学生快速的在线预约,提高了学习效率。......
  • 基于SpringBoot的高校党员信息管理系统的设计与实现-计算机毕业设计源码+LW文档
    摘要:中国的高校线上党建在国内有着非常好的使用前景,所以决定开发基于SpringBoot的高校党员信息管理系统。本系统能够满足党员的日常学习的需要,以及适应现代化党员管理的需求。本系统开发设计思想是实现在线管理的数字化。达到帮助高校进行网上管理,使党员管理工作更加高效的目的。......
  • 基于微信小程序的家政服务管理系统
    由于APP软件在开发以及运营上面所需成本较高,而用户手机需要安装各种APP软件,因此占用用户过多的手机存储空间,导致用户手机运行缓慢,体验度比较差,进而导致用户会卸载非必要的APP,倒逼管理者必须改变运营策略。随着微信小程序的出现,解决了用户非独立APP不可访问内容的痛点,所以很多APP软......
  • 基于web的图书馆管理系统设计与实现-计算机毕业设计源码+LW文档
    1.1选题背景信息技术的发展改变了我们的生活方式,许多行业的管理模式发生了根本性改变,特别是零售业受到电子商务强烈的冲击,越来越多的人参与到网购中。许多传统行业逐渐凋零,蓬勃发展的信息技术带来了大量的数据,通过数据可以获取到许多隐藏在背后的发展机遇。而这些数据都是存储在数......
  • 从零开始使用vue2+element搭建后台管理系统(前期准备)
    准备开始1.安装node(node-v查询版本号)(下载地址:https://nodejs.org/en/download/)2. 安装淘宝镜像 npminstall-gcnpm--registry=https://registry.npm.taobao.org3.安装webpack,以全局的方式安装 npminstallwebpack-g4.全局安装vue以及脚手架vue-cli npminst......
  • SpringBoot框架实现一个简单的管理系统
    当然,我可以提供一个简单的示例代码,用SpringBoot框架实现一个简单的管理系统。以下是一个用户管理系统的示例代码:创建SpringBoot项目:使用SpringInitializr(https://start.spring.io/)创建一个新的SpringBoot项目,选择相应的依赖(如SpringWeb、SpringDataJPA、Thymeleaf等)。创建......
  • 课程教学要素管理系统设计与实现-计算机毕业设计源码+LW文档
    1.选题背景、意义随着科技的进步与发展,计算机的诞生给人们的工作和学习带来了极大的改变,人类从工业时代进入了信息时代。今天,计算机对社会的影响不断深入扩大,教育行业也不例外。在此之前,计算机对教育的影响大多局限在科研领域或者计算机领域的教学。从上个世纪七十年代中期,计算......
  • 基于安防监控 EasyCVR 视频汇聚融合技术的运输管理系统进行简要分析。
    一、项目背景近年来,随着物流行业的快速发展,出现了一些问题,如高运输费用、运输过程不透明、货损货差率高、供应链协同能力差等,这严重影响了物流作业效率。因此,市场对于运输管理数字化的需求变得更加迫切。当前运输行业存在以下难题:1.运力池资源分配不均,导致运输时效不稳定。2.货......
  • 骑手端后台管理系统app源码
      骑手端app管理软件是基于外卖平台的其中一个端的软件,骑手端的功能从从订单接收、派送分配、路线规划、到订单完成的整个过程。本文主要解析该App源码的关键技术和实现方式。  骑手端的APP软件端,是接当地所有的外卖订单的系统,用户下单后的订单编号,所有的骑手都可以抢单子......